home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 008a / prolit_b.zip / PROLITE.DOC < prev    next >
Text File  |  1990-11-30  |  252KB  |  5,895 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                            T H E   P R O G R A M M E R ' S
  7.                           ---------------------------------
  8.  
  9.  
  10.                           P R O D U C T I V I T Y    P A C K
  11.                          ------------------------------------
  12.  
  13.  
  14.                                     *  L I T E  *
  15.                                    ---------------
  16.  
  17.  
  18.                                      Version 1.00
  19.                                     --------------
  20.  
  21.  
  22.  
  23.                                U S E R ' S    G U I D E
  24.                               --------------------------
  25.  
  26.  
  27.  
  28.                   Copyright (c) 1988,1989,1990 by Falk Data Systems.
  29.                                  All Rights Reserved.
  30.  
  31.  
  32.                             Last updated:  November, 1990
  33.  
  34.  
  35.                                   Falk Data Systems
  36.                                  5322 Rockwood Court
  37.                               El Paso, Texas  79932-2412
  38.                                         U.S.A.
  39.  
  40.  
  41.                                 Phone:  (915) 584-7670
  42.                                 CompuServe: 71420,2431
  43.  
  44.  
  45.                                  _______            
  46.                             ____|__     |                (R)
  47.                          --|       |    |-------------------
  48.                            |   ____|__  |  Association of  
  49.                            |  |       |_|  Shareware       
  50.                            |__|   o   |    Professionals   
  51.                          -----|   |   |---------------------
  52.                               |___|___|    MEMBER       
  53.  
  54.  
  55.                                   ---  CONTENTS  ---
  56.  
  57.  
  58.           General Information ..........................................  1
  59.  
  60.             The Programmer's Productivity Pack Lite (ProLite) ..........  1
  61.             License ....................................................  1
  62.             Warranty ...................................................  1
  63.             Registration ...............................................  1
  64.             Technical Support ..........................................  1
  65.             ASP Ombudsman Statement ....................................  2
  66.             Obtaining Updates ..........................................  3
  67.             Trademarks Mentioned .......................................  4
  68.  
  69.           Introduction .................................................  5
  70.             What is ProLite? ...........................................  5
  71.             System Requirements ........................................  6
  72.             Memory Requirements ........................................  7
  73.             How To Use This Manual .....................................  7
  74.  
  75.           How to Install ProLite .......................................  9
  76.             Which Files Do I Need? .....................................  9
  77.             Installing On A Hard Disk System ...........................  9
  78.             Installing On A Floppy Disk System ......................... 10
  79.             Setting ProLite For Your Monitor ........................... 11
  80.             The 80 Column Text Mode .................................... 12
  81.             The Modifier Keys .......................................... 12
  82.             ProLite and Your Keyboard .................................. 12
  83.  
  84.           How To Load And Unload ProLite ............................... 14
  85.             Using ProLite .............................................. 14
  86.               Loading ProLite .......................................... 15
  87.               ProLite Command Line Options ............................. 16
  88.               ProLite as a Stand-Alone Program ......................... 20
  89.               Renaming PROLITE.EXE ..................................... 21
  90.             Unloading ProLite .......................................... 21
  91.             Sidekick Considerations .................................... 21
  92.             The DOS PRINT Program ...................................... 23
  93.             In Case of Conflicts With Other Memory-Resident Programs ... 23
  94.             ProLite and Batch Files .................................... 24
  95.             ProLite Error Messages ..................................... 25
  96.               Beeps and Doesn't Pop Up ................................. 25
  97.               Doesn't Beep or Pop Up ................................... 26
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.           Table of Contents                                               i
  112.  
  113.  
  114.                                   ---  CONTENTS  ---
  115.  
  116.  
  117.           The Programmer's Calculator and Attachments .................. 27
  118.  
  119.           The Programmer's Calculator .................................. 27
  120.             The Quick Start Tutorial ................................... 27
  121.             The In-Depth Reference Guide ............................... 34
  122.               The Range Of Values Available ............................ 34
  123.               The Programmer's Calculator Display ...................... 35
  124.               The Quick Reference Menu ................................. 36
  125.               Signed And Unsigned Modes ................................ 36
  126.               The Four Numeric Formats ................................. 37
  127.               The Calculator Commands .................................. 37
  128.               The Mathematical Operations .............................. 41
  129.               Logical and Bit Manipulation Operations .................. 43
  130.               Moving The Calculator's Display .......................... 45
  131.               Going To The Attachments ................................. 45
  132.  
  133.           The ASCII and Color Attribute Chart .......................... 47
  134.             The Quick Start Tutorial ................................... 47
  135.             The In-Depth Reference Guide ............................... 49
  136.               25, 43, And 50 Line Screens .............................. 49
  137.               The Columns On The Chart ................................. 49
  138.               The Extended Characters .................................. 50
  139.               Moving Around The Chart .................................. 50
  140.               Other Available Commands ................................. 51
  141.               Returning to the Calculator .............................. 51
  142.  
  143.           The Keystroke Reference Center ............................... 52
  144.             The Quick Start Tutorial ................................... 52
  145.             The In-Depth Reference Guide ............................... 55
  146.               How To Access The Keystroke Reference Center ............. 56
  147.               The Display .............................................. 56
  148.               Scan Codes and INKEY() Values ............................ 57
  149.               Portability Notes ........................................ 58
  150.               Moving the Display ....................................... 58
  151.               Other Available Commands ................................. 59
  152.  
  153.           Park Disk(s) and Blank Screen ................................ 60
  154.             The In-Depth Reference Guide ............................... 60
  155.  
  156.           PCustom: The Customizing Program ............................. 62
  157.             The Quick Start Tutorial ................................... 62
  158.             The In-Depth Reference Guide ............................... 64
  159.               Starting PCustom ......................................... 64
  160.               How PCustom Works ........................................ 64
  161.               The PCustom Menus ........................................ 65
  162.               The Main Menu ............................................ 65
  163.                 The Colors Menu ........................................ 65
  164.                 The Hot Keys Menu ...................................... 72
  165.                 The Sound Effects Menu ................................. 73
  166.                 The Advanced Options Menu .............................. 74
  167.                 The Exit PCustom Menu .................................. 78
  168.  
  169.  
  170.           Table of Contents                                              ii
  171.  
  172.  
  173.                                   ---  CONTENTS  ---
  174.  
  175.  
  176.           Miscellaneous Information .................................... 79
  177.             EXE Compression Utilities .................................. 79
  178.             Change History ............................................. 79
  179.  
  180.           Appendix A
  181.             The Bits and the Bytes. .................................... 80
  182.  
  183.           Appendix B
  184.             Understanding Two's Complement Numbers ..................... 89
  185.  
  186.           Appendix C
  187.             What is Falk Data Systems? ................................. 91
  188.             Other Products From Falk Data Systems ...................... 91
  189.  
  190.           Index ........................................................ 92
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.           Table of Contents                                             iii
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.                                        Figures
  240.  
  241.  
  242.           Figure  1: Programmer's Calculator Display ................... 35
  243.           Figure  2: The Quick Reference Menu .......................... 36
  244.           Figure  3: Decimal Box Display ............................... 42
  245.           Figure  4: ASCII Chart Display ............................... 49
  246.           Figure  5: Keystroke Reference Center Display ................ 57
  247.           Figure  6: PCustom Main Menu ................................. 65
  248.           Figure  7: PCustom Colors Menu ............................... 65
  249.           Figure  8: Custom Colors Submenu ............................. 67
  250.           Figure  9: Calculator Sub-Submenu ............................ 68
  251.           Figure 10: Customize Hot Keys Submenu ........................ 72
  252.           Figure 11: Hot Keys Submenu .................................. 73
  253.           Figure 12: Sound Effects Submenu ............................. 73
  254.           Figure 13: Advanced Options Submenu .......................... 74
  255.           Figure 14: Miscellaneous Sub-Submenu ......................... 77
  256.           Figure 15: Exit PCustom Submenu .............................. 78
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.           Figures                                                        iv
  289.  
  290.  
  291.                      - Programmer's Productivity Pack Lite 1.00 -
  292.  
  293.  
  294.                                 ---------------------
  295.                                  General Information
  296.                                 ---------------------
  297.  
  298.  
  299.           The Programmer's Productivity Pack (ProPak):
  300.           ============================================
  301.  
  302.           "The Programmer's Productivity Pack Lite" is a very long title!
  303.           To help keep things brief we will often refer to the Programmer's
  304.           Productivity Pack Lite as "ProLite".  When we use the word
  305.           "ProLite" as a shortened form of "Programmer's Productivity Pack
  306.           Lite" we are referring to the entire package and all the programs
  307.           in the package (including ProLite and PCustom).
  308.  
  309.  
  310.           License:
  311.           ========
  312.  
  313.           The Programmer's Productivity Pack Lite is NOT a public domain
  314.           program.  It is Copyright (c) 1988, 1989,1990 by Falk Data
  315.           Systems.
  316.  
  317.           Please refer to the LICENSE.DOC text file for important license
  318.           information.
  319.  
  320.  
  321.           Warranty:
  322.           =========
  323.  
  324.           Please refer to the WARRANTY.DOC text file for important warranty
  325.           information.
  326.  
  327.  
  328.           Registration:
  329.           =============
  330.  
  331.           Please refer to the REGISTER.DOC text file for complete
  332.           registration information.
  333.  
  334.  
  335.           Technical Support:
  336.           ==================
  337.  
  338.           Free technical support is available to all registered users of
  339.           the Programmer's Productivity Pack Lite.
  340.  
  341.           If you are a registered user and have a question, problem, or
  342.           need help in any way, please feel free to contact us for
  343.           technical support.  We are here to help you.  Falk Data Systems
  344.           wants its customers to be happy with our products.  We will do
  345.  
  346.  
  347.           General Information                                       1 of 95
  348.  
  349.  
  350.                      - Programmer's Productivity Pack Lite 1.00 -
  351.  
  352.  
  353.           our best to help you get the most out of the Programmer's
  354.           Productivity Pack Lite.
  355.  
  356.           If you are not yet a registered user, please read the
  357.           REGISTER.DOC text file for complete registration information and
  358.           a list of benefits for registered users.
  359.  
  360.           Most technical support questions are answered in the ProLite
  361.           User's Guide (this document).  So before contacting us for
  362.           technical support, please try to find the answer to your question
  363.           in the User's Guide.  Please check the ANSWERS.DOC text file for
  364.           the answers to the most commonly asked questions regarding
  365.           ProLite.  If you are unable to find the information you need,
  366.           then please feel free to contact us.  Perhaps you've come across
  367.           something that should be included in the User's Guide in the
  368.           future.
  369.  
  370.           The best way to obtain technical support is through CompuServe.
  371.           You may send CompuServe Mail messages to us on CompuServe
  372.           [71420,2431].  We check our messages every working day, and
  373.           frequently on weekends too.  If you are not a CompuServe
  374.           subscriber be sure to check the appropriate box on your
  375.           registration form and we will provide you with a free CompuServe
  376.           Introductory Membership and a $15.00 usage credit.
  377.  
  378.           You may also obtain technical support by writing or calling Falk
  379.           Data Systems.  Registered users may call our technical support
  380.           line at (915) 584-7670.  Our hours are 9:00 am to 5:00 pm,
  381.           Mountain time, Monday through Friday.
  382.  
  383.           Please refer to page 91 for our address and other phone numbers.
  384.  
  385.  
  386.           ASP Ombudsman Statement:
  387.           ========================
  388.  
  389.           Falk Data Systems is a member of the Association of Shareware
  390.           Professionals (ASP).  ASP wants to make sure that the shareware
  391.           principle works for you.  If you are unable to resolve a
  392.           shareware-related problem with an ASP member by contacting the
  393.           member directly, ASP may be able to help.  The ASP Ombudsman can
  394.           help you resolve a dispute or problem with an ASP member, but
  395.           does not provide technical support for members' products.  Please
  396.           write to the ASP Ombudsman at P.O. Box 5786, Bellevue, WA 98006
  397.           or send a CompuServe message via easyplex to ASP Ombudsman
  398.           70007,3536.
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.           General Information                                       2 of 95
  407.  
  408.  
  409.                      - Programmer's Productivity Pack Lite 1.00 -
  410.  
  411.  
  412.           Obtaining Updates:
  413.           ==================
  414.  
  415.           Distributing a new version of a shareware product can be more
  416.           expensive than most people realize.  Hundreds of disks must be
  417.           sent to shareware distributors, computer user groups, clubs and
  418.           organizations, magazine editors, and more.  This is in addition
  419.           to sending copies to any registered users who are entitled to the
  420.           new version.  The process is costly not only in postage, but also
  421.           in time and energy.  Therefore, we don't always send out updates
  422.           and modifications to all the usual channels.  This is one of the
  423.           reasons registered users are often able to acquire updates and
  424.           new versions long before non-registered users.
  425.  
  426.           Another reason why registered users are often able to receive
  427.           updates months before non-registered users is because of the lead
  428.           time involved in updating the catalogs of the disk vendors.  Most
  429.           disk vendors update their catalogs every 1-3 months (depending
  430.           upon the frequency of catalog releases).  This means that even
  431.           after a vendor receives an update it may be several months before
  432.           you find out about it.  If you happen to miss a catalog issue or
  433.           overlook an update notice then it could take even longer for you
  434.           to find out about an update.
  435.  
  436.           When we release a new version it is sent FIRST to all registered
  437.           users who are entitled to the new version.  Their copy goes in
  438.           the mail even before copies to magazine editors and columnists.
  439.           Some versions are sent ONLY to registered users and NOT to anyone
  440.           else.
  441.  
  442.           Unless you are a registered user, you have no reliable way of
  443.           knowing whether you have the most current version or an older,
  444.           less capable version.  This clearly shows yet another benefit to
  445.           becoming a registered user.
  446.  
  447.           When you become a registered user of ProLite, we will send you
  448.           the most current version on disk in a sealed envelope along with
  449.           other material.
  450.  
  451.           Registered users also receive free notification of all future
  452.           updates and the opportunity to receive them automatically, at a
  453.           substantially reduced cost.  Please refer to the REGISTER.DOC
  454.           text file for complete details.
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.           General Information                                       3 of 95
  466.  
  467.  
  468.                      - Programmer's Productivity Pack Lite 1.00 -
  469.  
  470.  
  471.           Trademarks Mentioned:
  472.           =====================
  473.  
  474.           Falk Data Systems, ProPak, ProSwap, the Programmer's Productivity
  475.           Pack, ProLite, and the Programmer's Productivity Pack Lite are
  476.           trademarks of Falk Data Systems.
  477.  
  478.           BRIEF is a trademark of UnderWare, Inc.
  479.  
  480.           CompuServe is a trademark of CompuServe Incorporated.
  481.  
  482.           dBASE is a trademark of Ashton-Tate, Inc.
  483.  
  484.           DESQview is a trademark of Quarterdeck Office Systems.
  485.  
  486.           Hercules is a registered trademark of Hercules
  487.           Computer Technology, Inc.
  488.  
  489.           IBM, PC-DOS, PC/XT/AT and PS/2 are registered trademarks of
  490.           International Business Machines Corporation.
  491.  
  492.           Microsoft and MS-DOS are trademarks or registered trademarks of
  493.           Microsoft Corporation.
  494.  
  495.           OPTASM is a registered trademark of SLR Systems.
  496.  
  497.           TaskView and OmniView are trademarks of Sunny Hill Software.
  498.  
  499.           Periscope is a trademark of The Periscope Company.
  500.  
  501.           Solution Systems is a trademark of the Software
  502.           Developer's Corporation.
  503.  
  504.           Turbo Professional is a registered trademark of Sunny
  505.           Hill Software, used under license to TurboPower
  506.           Software.
  507.  
  508.           TurboPower Software is a trademark of TurboPower Software.
  509.  
  510.           Turbo Pascal, Turbo Assembler, Turbo Debugger, Sidekick and
  511.           SideKick Plus are registered trademarks of Borland International.
  512.  
  513.           WordStar is a registered trademark of MicroPro International
  514.           Corporation.
  515.  
  516.           Some of the trademarks of other companies mentioned in this
  517.           user's guide appear for identification purposes only.
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.           General Information                                       4 of 95
  525.  
  526.  
  527.                      - Programmer's Productivity Pack Lite 1.00 -
  528.  
  529.  
  530.                                     --------------
  531.                                      Introduction
  532.                                     --------------
  533.  
  534.  
  535.           What is ProLite?
  536.           ================
  537.  
  538.           ProLite is a subset of the larger Programmer's Productivity Pack
  539.           (ProPak).  The complete Programmer's Productivity Pack is also
  540.           available on a try-before-you-buy basis.  Please refer to the
  541.           PRODUCTS.DOC text file for more information.
  542.  
  543.           The Programmer's Productivity Pack Lite, ProLite, is a software
  544.           package designed to provide the utilities and reference tools
  545.           most frequently needed by programmers.  What's more, each
  546.           individual tool or "attachment" within the ProLite package was
  547.           designed to be the best, most powerful, most flexible, and
  548.           easiest to use in its category.
  549.  
  550.           For instance, The Programmer's Calculator, which is only one of
  551.           the tools built into ProLite, is the best Programmer's Calculator
  552.           on the market, bar none!  Integrating all of these tools into one
  553.           program and placing them at your disposal at one time will make
  554.           the time you spend programming more productive than ever.
  555.  
  556.           ProLite provides you with:
  557.           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  558.  
  559.               o  A Programmer's Calculator that works simultaneously in
  560.                  decimal, binary, hexadecimal, and octal.
  561.  
  562.               o  Addition, subtraction, multiplication, integer division,
  563.                  and modulus mathematical functions.
  564.  
  565.               o  SHL, SHR, ROL, ROR, SAL, SAR, RCL, RCR bit manipulation
  566.                  functions.
  567.  
  568.               o  AND, NOT, OR, and XOR logical functions.
  569.  
  570.               o  Exchange word and exchange double word functions.
  571.  
  572.               o  An ASCII and color attribute chart.
  573.  
  574.               o  A keystroke reference utility that returns both the BIOS
  575.                  scan codes and the dBASE INKEY() values.
  576.  
  577.               o  A screen blanking facility that will park your hard disk
  578.                  (or disks) while the screen is blanked.
  579.  
  580.  
  581.  
  582.  
  583.           Introduction                                              5 of 95
  584.  
  585.  
  586.                      - Programmer's Productivity Pack Lite 1.00 -
  587.  
  588.  
  589.               o  A pop-up DOS shell capability which enables you to shell
  590.                  to DOS from any program, with as much as 600K bytes of
  591.                  memory available in the DOS shell.
  592.  
  593.               o  Complete control of all the Hot Keys, colors, sound
  594.                  effects, file extensions, memory usage, and more, through
  595.                  PCustom, the customizing program.
  596.  
  597.           All this and more.  All in one smoothly integrated package.  The
  598.           Programmer's Productivity Pack Lite includes tools which can run
  599.           stand-alone, memory-resident (even with Sidekick), memory-
  600.           resident with swapping, or as a background task in a multitasking
  601.           environment.  And since ProLite provides you with the ability to
  602.           customize every detail, it not only helps you to be more
  603.           productive, it also gives you the freedom to adapt it to your
  604.           particular needs and preferences.
  605.  
  606.           The Programmer's Productivity Pack Lite can handle dual monitor
  607.           systems, EMS and XMS memory, multitasking systems like DESQview
  608.           and TaskView/OmniView, and more.  ProLite can be easily and
  609.           safely unloaded from memory when the need arises.  You even have
  610.           three different methods by which it may be unloaded.
  611.  
  612.           The Programmer's Productivity Pack Lite is even compatible with
  613.           Borland's Sidekick.  It is so compatible that it can be safely
  614.           loaded AFTER Sidekick.
  615.  
  616.           All things considered, the Programmer's Productivity Pack Lite
  617.           should become one of your most often used utilities, and you
  618.           might find yourself wondering how you ever got along without it.
  619.           Congratulations on one of your best software acquisitions!
  620.  
  621.           System Requirements:
  622.           --------------------
  623.  
  624.           The Programmer's Productivity Pack Lite requires PC/MS-DOS 2.0 or
  625.           higher, on an IBM PC, XT, AT, PS/2, or close compatible.  ProLite
  626.           will work on a floppy disk only system, but a hard disk is
  627.           recommended.
  628.  
  629.           ProLite supports all common video adapter and monitor
  630.           combinations, including dual monitor systems.  ProLite has been
  631.           tested with the following adapter types:  MDA, CGA, EGA, MCGA,
  632.           and VGA, as well as the Hercules and Hercules InColor cards.
  633.  
  634.           EMS and/or XMS memory is helpful but not required.
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.           Introduction                                              6 of 95
  643.  
  644.  
  645.                      - Programmer's Productivity Pack Lite 1.00 -
  646.  
  647.  
  648.           Memory Requirements:
  649.           --------------------
  650.  
  651.           The actual  memory requirements will vary depending upon how
  652.           swapping is handled, the amount of memory you reserve for the
  653.           Pop-Up DOS Shell, etc.
  654.  
  655.           When loaded in swapping mode, ProLite retains only about 7K bytes
  656.           of memory while resident (and swapped out).
  657.  
  658.           The customizing program, PCustom, requires 256K bytes of RAM.
  659.  
  660.           ProLite.EXE:
  661.           ~~~~~~~~~~~~
  662.           ProLite uses as little memory as possible.  ProLite can swap
  663.           itself to disk, to EMS memory, or to XMS memory.  All this
  664.           flexibility means that ProLite is ideal when memory is scarce.
  665.  
  666.           How To Use This Manual:
  667.           -----------------------
  668.  
  669.           This manual is designed to get you up and running with the
  670.           Programmer's Productivity Pack Lite as quickly as possible.
  671.           Besides being written in a simple, conversational style there are
  672.           five special features which will help you get the most from
  673.           ProLite in the minimum amount of time.
  674.  
  675.           The Quick Start Tutorials:
  676.           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  677.              The "Quick Start Tutorials" are designed to help you begin
  678.              using the individual tools in the Programmer's Productivity
  679.              Pack Lite in an efficient and productive manner as quickly as
  680.              possible.
  681.  
  682.              Each Quick Start Tutorial is complete in itself.  This means
  683.              that they don't have to be read together or in any particular
  684.              order.  Each tutorial should take about 15 minutes or less to
  685.              complete.  Although the tutorials don't cover every single
  686.              feature of the program in detail, they will get you
  687.              comfortable and familiar with the major functions in each tool
  688.              quickly and painlessly.  It would be to your benefit to read
  689.              the Quick Start Tutorials, even if you never looked at the
  690.              rest of the manual.  They will help you get your money's worth
  691.              out of this software package.  Take advantage of them.  You'll
  692.              be glad you did!
  693.  
  694.              Since ProLite was written to be easy to learn and use (to be
  695.              "intuitive") you will probably find that the Quick Start
  696.              Tutorials are all you will need to start working profitably
  697.              with it.
  698.  
  699.  
  700.  
  701.           Introduction                                              7 of 95
  702.  
  703.  
  704.                      - Programmer's Productivity Pack Lite 1.00 -
  705.  
  706.  
  707.           The In-Depth Reference Guides:
  708.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709.              The In-Depth Reference Guides in the ProLite User's Guide
  710.              cover each one of the tools and utilities individually.  As
  711.              the name implies, this is where you can find a complete
  712.              listing and description of each and every feature of that tool
  713.              or program.  Every command and option will be given, along
  714.              with any necessary information on how and when to use it.
  715.  
  716.              The In-Depth Reference Guides contain a tremendous amount of
  717.              helpful information and we suggest that you consult them.
  718.              They are written in the same simple, conversational style and
  719.              should be just as comfortable to read as the tutorials.
  720.  
  721.           Tips and Tricks:
  722.           ~~~~~~~~~~~~~~~~
  723.              Wherever we have been able to develop helpful tips and tricks
  724.              to make the use of ProLite even more efficient we have put
  725.              them in the User's Guide and marked them with "TIP:".  Using
  726.              these techniques does not require any more expertise than
  727.              using any other feature of the program.  They are just the
  728.              by-product of the many hours the author, beta-testers, and
  729.              users have spent using the program.  In future upgrades we
  730.              will include any other tips that we find or develop or that
  731.              you bring to our attention.  Our desire is to provide you with
  732.              the best tools and documentation possible.
  733.  
  734.           The Appendices:
  735.           ~~~~~~~~~~~~~~~
  736.              There are three appendices following the User's Guide that
  737.              will be of special value to any of you that are new to
  738.              programming.  They may even help some of you old pros to fill
  739.              in a few gaps in your understanding.  We have endeavored to
  740.              make ProLite a useful tool for both the student and the
  741.              professional programmer.
  742.  
  743.           The Index:
  744.           ~~~~~~~~~~
  745.              The Index at the back of the User's Guide is as comprehensive
  746.              as we could make it without overwhelming you with unnecessary
  747.              references.
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.           Introduction                                              8 of 95
  761.  
  762.  
  763.                      - Programmer's Productivity Pack Lite 1.00 -
  764.  
  765.  
  766.                                -----------------------
  767.                                 How to Install ProLite
  768.                                -----------------------
  769.  
  770.  
  771.           Which Files Do I Need?:
  772.           =======================
  773.  
  774.           The following discussion outlines the files included in the
  775.           Programmer's Productivity Pack Lite.
  776.  
  777.           ProLite.EXE:  This is the flexible-loading version (called
  778.           ProSwap in the full size Programmer's Productivity Pack).
  779.           ProLite can run as a memory-resident "swapping" version, a
  780.           standard memory-resident version, a background task under
  781.           DESQview or OmniView/TaskView, or as a stand-alone program under
  782.           MS-DOS.
  783.  
  784.           PCustom.EXE:  This is the customizing program which will enable
  785.           you to customize ProLite.
  786.  
  787.           The customizing program does not need to be present to make
  788.           changes to the program "on the fly".  You can change some items
  789.           (such as Hot Keys) while ProLite is actually loaded in memory.
  790.           The customizing program DOES have to be used if you want the
  791.           changes to be "permanent".  That is, written to disk and
  792.           available to you the next time you turn on your computer.
  793.           Changes made from within ProLite are not "permanent" because they
  794.           are made in memory and will be lost when you unload ProLite or
  795.           turn off your computer.  Both methods of customizing are simple
  796.           to use whenever needed.
  797.  
  798.           We recommend that both ProLite.EXE and PCustom.EXE be placed in
  799.           the same subdirectory on your hard disk, or on the same diskette
  800.           on floppy disk-only systems.
  801.  
  802.           By the way, PCustom, the customizing program, is not required for
  803.           the operation of ProLite, but it is nice to have on hand.  Unless
  804.           disk space is at a premium, keep it available at all times.
  805.  
  806.           We have also provided a file called "ANSWERS.DOC", which answers
  807.           the most commonly asked questions concerning the use of the
  808.           Programmer's Productivity Pack Lite.
  809.  
  810.  
  811.           Installing On A Hard Disk System:
  812.           =================================
  813.  
  814.           The first step, which should be taken BEFORE you install the
  815.           programs on your hard disk, is to make backup copies.  This is a
  816.           very important safety measure which you should take with every
  817.  
  818.  
  819.           Installing ProLite                                        9 of 95
  820.  
  821.  
  822.                      - Programmer's Productivity Pack Lite 1.00 -
  823.  
  824.  
  825.           new program.  This protects your investment in case a disk
  826.           becomes damaged or erased.  We provide extra labels with the
  827.           registered version for you to place on your backup copies.
  828.           Finally, we recommend that you use the  copies as "working
  829.           copies" and place the original diskettes in a safe place.
  830.  
  831.           Installing the Programmer's Productivity Pack Lite on your hard
  832.           disk is simply a matter of deciding which files you want to copy
  833.           to your hard disk, and which subdirectory you want to place them
  834.           in.
  835.  
  836.           Running an actual "installation" program is not required.  Any
  837.           one of the two programs will run fine.  There is no "PInstall"
  838.           program.
  839.  
  840.           PCustom enables you to customize various features of the program,
  841.           but it is not necessary in order to get ProLite up and running.
  842.           In fact, ProLite is sophisticated enough to determine for itself
  843.           if you are using a color or monochrome monitor, EMS memory, etc.
  844.           We should add however, that if you are using a black-and-white
  845.           monitor, such as an LCD or gas plasma display, or other gray
  846.           scale type of monitor, you will probably want to run PCustom to
  847.           change the screen colors to the gray scale values.  This is
  848.           covered in the section "Setting ProLite For Your Monitor" (page
  849.           11).  ProLite is already set to look good on monochrome and color
  850.           monitors.
  851.  
  852.  
  853.           Installing On A Floppy Disk System:
  854.           ===================================
  855.  
  856.           Because ProLite uses swapping to conserve memory, we recommend
  857.           that it be run from a hard disk rather than from the slower
  858.           floppy diskette drives.  But, if you do not have a hard disk,
  859.           don't worry.  You can still use the Programmer's Productivity
  860.           Pack Lite.  To take advantage of its swapping capabilities,
  861.           however, you will need either a hard disk, or sufficient EMS or
  862.           XMS memory for swapping purposes.
  863.  
  864.           As with every software product you purchase, your first step
  865.           should be to make backup copies of the distribution diskettes.
  866.           This will protect your investment in case something unexpected
  867.           happens to the original diskettes.  We provide (with the
  868.           registered version) printed labels for you to place on your
  869.           backup copies.  Finally, we recommend that you use the backup
  870.           diskettes as the "working copy" and place the original diskettes
  871.           in a safe place.
  872.  
  873.           We recommend that you include PCustom on each ProLite diskette.
  874.           This way you will be able to customize the program whenever you
  875.           wish.  However, PCustom is not required for ProLite to run.
  876.  
  877.  
  878.           Installing ProLite                                       10 of 95
  879.  
  880.  
  881.                      - Programmer's Productivity Pack Lite 1.00 -
  882.  
  883.  
  884.           Running an actual "installation" program is not required.  Any
  885.           one of the two programs will run fine.  There is no "PInstall"
  886.           program.
  887.  
  888.           PCustom enables you to customize various features of ProLite, but
  889.           it is not necessary in order to get ProLite up and running.  In
  890.           fact, ProLite is sophisticated enough to determine for itself if
  891.           you are using a color or monochrome monitor, etc.  We should add
  892.           however, that if you are using a black-and-white monitor, such as
  893.           an LCD or gas plasma display, or another gray scale type of
  894.           monitor, you will probably want to run PCustom to change the
  895.           screen colors to the gray scale values.  This is covered in the
  896.           next section "Setting ProLite For Your Monitor".  ProLite is
  897.           already set to look good on monochrome and color monitors.
  898.  
  899.           If you are new to MS-DOS and are not sure how to copy files from
  900.           one disk to another, then please consult your DOS manual to
  901.           familiarize yourself with DOS and to answer any questions that
  902.           may arise.
  903.  
  904.  
  905.           Setting ProLite For Your Monitor:
  906.           =================================
  907.  
  908.           You do not have to do anything to set up ProLite for your monitor
  909.           if you are using either a color or monochrome monitor.  ProLite
  910.           is sophisticated enough to know which one you have without asking
  911.           you.
  912.  
  913.           However, gray scale type monitors (LCD, gas plasma, etc.) look
  914.           like color monitors to any software.  If you don't tell ProLite
  915.           that you really have a black-and-white display then some of the
  916.           screens will not be very clear.  PCustom enables you to set
  917.           ProLite to look good on a black-and-white monitor.
  918.  
  919.           To set ProLite to look good on your black-and-white monitor,
  920.           simply type "PCUSTOM -B" <Enter>.  When the PCustom Main Menu
  921.           appears choose "Modify All Versions Present".  Wait for a second
  922.           and another Menu will appear.  Choose "Colors".  When the
  923.           "Colors" Submenu appears choose "Gray Scale Attribute Set".  Move
  924.           the highlight bar with the <Down> arrow key and press <Enter>
  925.           when "Gray Scale Attribute Set" is highlighted.  Now go to "Exit
  926.           PCustom" and press <Enter>.  Choose "Save Changes" and you are
  927.           done.
  928.  
  929.           Refer to the section on PCustom (page 66) for more detailed
  930.           information.
  931.  
  932.           You do not have to make any special arrangements to use ProLite
  933.           with a dual monitor system.
  934.  
  935.  
  936.  
  937.           Installing ProLite                                       11 of 95
  938.  
  939.  
  940.                      - Programmer's Productivity Pack Lite 1.00 -
  941.  
  942.  
  943.           The 80 Column Text Mode:
  944.           ========================
  945.  
  946.           In general, the features provided by ProLite are only available
  947.           while in an 80 column text mode.  ProLite will recognize and take
  948.           advantage of 25, 43 and 50 line modes.  ProLite is not designed
  949.           to pop up while in graphics mode.  This is due to the fact that
  950.           much more memory would be needed to save a graphics screen than a
  951.           text screen.  For the same reason, ProLite was not designed for
  952.           use in 132 column mode (which is rarely used).  Also, since most
  953.           of ProLite's displays cannot fit on a 40 column screen, it will
  954.           not pop up under those conditions.
  955.  
  956.  
  957.           The Modifier Keys:
  958.           ==================
  959.  
  960.           Many times in both the manual and the on-screen menus, a
  961.           keystroke command is listed with a caret (^) in front of the key.
  962.           For instance, the Calculator's Quick Reference Menu is opened
  963.           using <^M>.  ProLite is not excessively picky about keystrokes.
  964.           To make things as easy as possible such keys can actually be
  965.           entered in a number of different ways.  Let's use the "^M"
  966.           example.  <^M> can be entered as Ctrl-M, Alt-M, Shift-M, or just
  967.           plain "M".  This makes keystroke commands very easy to remember.
  968.  
  969.           There are only two categories of exceptions to this rule and they
  970.           will always be explained as they are encountered.  The two
  971.           general categories are outlined below.
  972.  
  973.           When you are in Hexadecimal format in The Programmer's
  974.           Calculator, the letters "A" through "F" correspond to the
  975.           hexadecimal values 0A hex (10 decimal) through 0F hex (15
  976.           decimal).  Therefore, to use one of these letters as anything
  977.           other than a hexadecimal value, they must be preceded by either
  978.           <Ctrl> or <Alt>.
  979.  
  980.           Some keys such as <Tab> or <F1> mean the opposite when they are
  981.           modified with <Ctrl>, <Alt> or a <Shift> key.
  982.  
  983.  
  984.           ProLite and Your Keyboard:
  985.           ==========================
  986.  
  987.           Knowing how ProLite uses your keyboard can help you get the most
  988.           out of ProLite.  ProLite is able to use more key combinations
  989.           than most software.  The reason for this is twofold.
  990.  
  991.           When ProLite is installed, it hooks into the BIOS keyboard
  992.           services (Interrupts 09h and 16h) and adds several additional
  993.           capabilities to those services.  These additional features are
  994.  
  995.  
  996.           Installing ProLite                                       12 of 95
  997.  
  998.  
  999.                      - Programmer's Productivity Pack Lite 1.00 -
  1000.  
  1001.  
  1002.           much more apparent to those of you who do not have enhanced
  1003.           keyboards.  ProLite is able to recognize many key combinations
  1004.           that are normally usable only with an enhanced keyboard.  Also,
  1005.           for users of enhanced keyboards, ProLite is able to use about a
  1006.           dozen key combinations that are not normally recognized by the
  1007.           BIOS alone.  This enhancement to normal keyboard functionality is
  1008.           at a very low level, meaning that you do not have to do anything
  1009.           special to obtain this benefit.
  1010.  
  1011.           On a higher level, ProLite goes to extreme lengths to recognize
  1012.           keys logically according to the context in which they are typed.
  1013.           For instance, if you are using The Programmer's Calculator and do
  1014.           not have NumLock set and you press the <Up> Arrow key, it is
  1015.           fairly obvious that you intended to enter the number 8.  This
  1016.           concept helps to make ProLite so easy to use.  It even works with
  1017.           the number 5 key, the center key on the numeric keypad, when
  1018.           NumLock is NOT on.
  1019.  
  1020.           By being aware of ProLite's efforts to make your keyboard more
  1021.           functional, you can often think of additional ways to improve
  1022.           your productivity.  After all, who knows more about the kinds of
  1023.           things you use your computer for than you do?
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.           Installing ProLite                                       13 of 95
  1056.  
  1057.  
  1058.                      - Programmer's Productivity Pack Lite 1.00 -
  1059.  
  1060.  
  1061.                            --------------------------------
  1062.                             How To Load And Unload ProLite
  1063.                            --------------------------------
  1064.  
  1065.  
  1066.           Now that you have chosen which files you want to use and have
  1067.           installed them on your system, all that remains is to use them.
  1068.  
  1069.  
  1070.           Using ProLite:
  1071.           ==============
  1072.  
  1073.           ProLite is an extremely flexible program containing the most used
  1074.           features of The Programmer's Productivity Pack.
  1075.  
  1076.               o  ProLite can be loaded as a swapping memory resident
  1077.                  version which swaps most of itself out of memory when not
  1078.                  in use.  When loaded in this fashion ProLite retains only
  1079.                  about 7K bytes of memory while resident.  ProLite can swap
  1080.                  itself to:
  1081.  
  1082.                      -  XMS memory.
  1083.  
  1084.                      -  EMS memory.
  1085.  
  1086.                      -  a RAM disk.
  1087.  
  1088.                      -  a hard disk.
  1089.  
  1090.                      -  a Bernoulli drive.
  1091.  
  1092.               o  ProLite can be loaded as a traditional memory resident
  1093.                  program (no swapping).
  1094.  
  1095.               o  ProLite can also be run as a stand-alone DESQview aware
  1096.                  program which does not remain memory resident.
  1097.  
  1098.           ProLite also provides a useful pop-up DOS shell capability.  When
  1099.           activated, this capability swaps the currently running program
  1100.           out, freeing as much memory as possible, then loads a secondary
  1101.           copy of the command processor, and places you at the DOS prompt.
  1102.           This capability enables you to shell to DOS from programs that do
  1103.           not have this capability built in.
  1104.  
  1105.           Important Note:  To use the pop-up DOS shell capability you must
  1106.           have PC/MS-DOS 3.0 or later.  If you are using an earlier version
  1107.           of DOS you will have to disable the DOS shell capability using
  1108.           PCustom, before you can use ProLite.
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.           Loading and Unloading ProLite                            14 of 95
  1115.  
  1116.  
  1117.                      - Programmer's Productivity Pack Lite 1.00 -
  1118.  
  1119.  
  1120.           Loading ProLite:
  1121.           ----------------
  1122.  
  1123.           To start ProLite simply type "PROLITE" <Enter> at the DOS prompt.
  1124.           This will start ProLite in its default (normal) mode.  Several
  1125.           command line options are available and are described in detail
  1126.           below.  Before we discuss the command line options, you should be
  1127.           aware of some limitations.
  1128.  
  1129.           ProLite is designed to provide you with as much usable memory as
  1130.           possible while it is resident.  To accomplish this ProLite must
  1131.           be able to swap itself into and out of memory.  Because of this
  1132.           swapping behavior there are several things you must avoid.
  1133.  
  1134.               o  ProLite cannot be loaded into "high" memory using
  1135.                  utilities such as QRAM, QEMM, 386MAX, or any similar
  1136.                  utility.
  1137.  
  1138.               o  ProLite should not be loaded before programs that contain
  1139.                  hardware interrupt handlers.  Examples of such programs
  1140.                  are network shells, multitasking operating systems, and
  1141.                  communications programs.  If you are going to use ProLite
  1142.                  in these environments you should load it after the network
  1143.                  shell or multitasking operating system is installed.
  1144.  
  1145.               o  It is possible to load ProLite and still run
  1146.                  communications programs like ProComm or TAPCIS, providing
  1147.                  you follow some simple guidelines.  Do NOT pop ProLite up
  1148.                  over your communications program while it is online,
  1149.                  uploading or downloading, or waiting to answer an incoming
  1150.                  call.  When ProLite pops up it swaps the current
  1151.                  application out - essentially trading places with it in
  1152.                  memory.  This will be a problem if the other program was
  1153.                  trying to deal with com ports or some other hardware
  1154.                  related activity.  Of course, if you are using a program
  1155.                  like ProComm or TAPCIS and the program is not online or
  1156.                  waiting to answer an incoming call, then it is safe to pop
  1157.                  up ProLite.
  1158.  
  1159.               o  ProLite will not pop up over a program operating in
  1160.                  graphics mode.  ProLite does not know how to save and
  1161.                  restore a graphics screen.  So to prevent problems,
  1162.                  ProLite will simply beep and refuse to pop up when your
  1163.                  video system is in graphics mode.
  1164.  
  1165.           There are also some important restrictions regarding the pop-up
  1166.           DOS shell capabilities.
  1167.  
  1168.               o  You cannot pop to a DOS shell while you are at the DOS
  1169.                  command line.  The problem has to do with the way DOS
  1170.                  handles its internal stacks.  You're probably wondering
  1171.  
  1172.  
  1173.           Loading and Unloading ProLite                            15 of 95
  1174.  
  1175.  
  1176.                      - Programmer's Productivity Pack Lite 1.00 -
  1177.  
  1178.  
  1179.                  "why would I want to shell to the DOS command line when
  1180.                  I'm already at the DOS command line?".  Well, there's
  1181.                  really no reason to do this, so this isn't much of a
  1182.                  limitation.  Unfortunately, this is one of the first
  1183.                  things users try to do when they start experimenting with
  1184.                  ProLite.
  1185.  
  1186.               o  This same conflict arises if you pop up a TSR from the DOS
  1187.                  command line and then try to pop to a DOS shell using
  1188.                  ProLite.  Even though you popped up another TSR,
  1189.                  technically you are still at the DOS command line.
  1190.  
  1191.               o  The DOS programs DEBUG and EDLIN are very similar to the
  1192.                  DOS command line in terms of how internal DOS stacks are
  1193.                  managed.  Because of this you cannot pop to a DOS shell
  1194.                  from within DEBUG or EDLIN.
  1195.  
  1196.               o  It is possible, under a multitasking system such as
  1197.                  DESQview, for ProLite to not recognize that you are at the
  1198.                  DOS command line.  So be very careful when using ProLite
  1199.                  under a multitasking operating system - don't try to pop
  1200.                  to a DOS shell from the DOS command line.
  1201.  
  1202.               o  Finally, the most important restriction:  Do NOT install
  1203.                  another memory resident program while you are within the
  1204.                  ProLite DOS shell.  When you exit from the DOS shell
  1205.                  ProLite will swap the new memory resident program out and
  1206.                  the results will not be pretty.
  1207.  
  1208.           When ProLite is swapping to disk, it must be absolutely
  1209.           guaranteed that it will have access to its swap files when it
  1210.           swaps itself into or out of memory.  This requirement, coupled
  1211.           with the speed issue, means that ProLite's swap file cannot be
  1212.           located on removable media such as a floppy diskette.  ProLite
  1213.           checks for this and will refuse to load if you specify a floppy
  1214.           drive as the location for the swap files.  Even though the media
  1215.           is technically removable, you may still use a Bernoulli drive as
  1216.           the location for the swap files.
  1217.  
  1218.           ProLite Command Line Options:
  1219.           -----------------------------
  1220.  
  1221.           Some programs are overly picky about how a command line option is
  1222.           entered.  Some programs expect each option to be preceded by a
  1223.           space and a backslash.  Even worse, some programs are case
  1224.           sensitive - a command line option must be lower case, or it must
  1225.           be upper case, or some other limitation.  Command line options
  1226.           with ProLite are very easy.
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.           Loading and Unloading ProLite                            16 of 95
  1233.  
  1234.  
  1235.                      - Programmer's Productivity Pack Lite 1.00 -
  1236.  
  1237.  
  1238.           For instance, if a command line option is "/X" - the "X" may be
  1239.           either upper or lower case.  Furthermore, it may be preceded by a
  1240.           forward slash (/), a backslash (\), a dash (-), or a space ( ).
  1241.  
  1242.           Here is a brief list of each option.  The list is followed by a
  1243.           detailed description of each option.
  1244.  
  1245.              -D  force swapping to Disk only
  1246.  
  1247.              -E  force swapping to EMS memory only
  1248.  
  1249.              -H  Help (same as "-?")
  1250.  
  1251.              -M  Minimize swap size (XMS and Disk only)
  1252.  
  1253.              -N  No swapping (TSR mode - same as "-T")
  1254.  
  1255.              -P  Preserve mouse state within the DOS shell
  1256.  
  1257.              -S  Stand-alone (non-resident), DESQview aware mode
  1258.  
  1259.              -T  TSR mode (no swapping - same as "-N")
  1260.  
  1261.              -U  Unload the previously loaded copy of ProLite from memory
  1262.  
  1263.              -X  force swapping to XMS memory only
  1264.  
  1265.              -?  shows a list of all available command line options and
  1266.                  returns to the DOS command line (help - same as "-H")
  1267.  
  1268.           (D) Force Swapping to Disk Only:
  1269.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1270.              This option forces ProLite to swap to disk even if sufficient
  1271.              EMS or XMS memory is available.  Swapping to disk is
  1272.              inevitably slower than swapping to EMS or XMS memory.  The
  1273.              speed of the swapping process can be further controlled by the
  1274.              "-M" option described below.
  1275.  
  1276.              This option can be permanently controlled using PCustom.
  1277.  
  1278.           (E) Force Swapping to EMS Memory Only:
  1279.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1280.              This option forces ProLite to swap to EMS memory.  If there is
  1281.              not enough EMS memory available, then ProLite will abort
  1282.              without attempting to swap to either disk or XMS memory.
  1283.  
  1284.              This option can be permanently controlled using PCustom.
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.           Loading and Unloading ProLite                            17 of 95
  1292.  
  1293.  
  1294.                      - Programmer's Productivity Pack Lite 1.00 -
  1295.  
  1296.  
  1297.           (H) Help:
  1298.           ~~~~~~~~~
  1299.              Displays a list of command line options and returns to DOS
  1300.              without going resident.  This can be accomplished using any
  1301.              command line option that is not recognized by ProLite.  This
  1302.              option is the same as "-?" described below.
  1303.  
  1304.           (M) Minimize Swap Size:
  1305.           ~~~~~~~~~~~~~~~~~~~~~~~
  1306.              This option applies only when ProLite is swapping to disk or
  1307.              to XMS memory (it is ignored when swapping to EMS memory).
  1308.  
  1309.              When swapping to disk, two swap files are used.  When swapping
  1310.              to XMS memory, two blocks of memory are used.  One is used for
  1311.              storing the memory under the control of ProLite, the other is
  1312.              used for storing the memory under the control of the
  1313.              application being swapped out.  This allows the swapping
  1314.              operation to occur as quickly as possible - at the expense of
  1315.              using more disk space, or more XMS memory.
  1316.  
  1317.              When the "-M" option is used, ProLite will use only one file
  1318.              when swapping to disk, or one memory block when swapping to
  1319.              XMS.  In effect, the two swap images "trade places" with each
  1320.              other during the swapping operation.
  1321.  
  1322.              This option causes ProLite to use much less disk space, or
  1323.              much less XMS memory.  The price you pay for conserving these
  1324.              resources is speed.  Swapping takes much longer in this mode.
  1325.  
  1326.              This option can be permanently controlled using PCustom.
  1327.  
  1328.           (N) No Swapping, and
  1329.           (T) TSR Mode:
  1330.           ~~~~~~~~~~~~~
  1331.              These options are identical.  Use the one that is easiest for
  1332.              you to remember.
  1333.  
  1334.              When ProLite is loaded in TSR mode, it will load just like
  1335.              ProLite.  It will remain in memory until it is unloaded - no
  1336.              swapping will be performed.  This means that it will pop-up
  1337.              instantly when a hot key is pressed, but it will take much
  1338.              more memory away from your other programs.  The pop-up DOS
  1339.              shell capability is not available in this mode.
  1340.  
  1341.              This option can be permanently controlled using PCustom.
  1342.  
  1343.           (P) Preserve Mouse State:
  1344.           ~~~~~~~~~~~~~~~~~~~~~~~~~
  1345.              Most people won't pop to DOS from a program that uses a mouse
  1346.              and then run another program that uses a mouse.  So there is
  1347.              usually no need for ProLite to preserve the mouse state when
  1348.  
  1349.  
  1350.           Loading and Unloading ProLite                            18 of 95
  1351.  
  1352.  
  1353.                      - Programmer's Productivity Pack Lite 1.00 -
  1354.  
  1355.  
  1356.              it pops to DOS and restore it when it returns from DOS.  Some
  1357.              newer mouse drivers are annoyingly slow at initializing (which
  1358.              happens every time you pop to DOS), which is yet another
  1359.              reason why ProLite does not normally preserve the state of the
  1360.              mouse.
  1361.  
  1362.              This option tells ProLite to preserve the mouse state before
  1363.              it shells to DOS, and to restore the mouse state when it
  1364.              returns from the DOS shell.  If you use a mouse often, you
  1365.              will want to start ProLite with the "-P" option.
  1366.  
  1367.           (S) Stand-Alone Mode:
  1368.           ~~~~~~~~~~~~~~~~~~~~~
  1369.              This option tells ProLite to run like a traditional program.
  1370.              This means that ProLite will not go memory resident.  When you
  1371.              are finished using ProLite and exit, you will return to DOS.
  1372.              In this mode ProLite is DESQview aware and sends all screen
  1373.              output to the buffer provided by DESQview rather than directly
  1374.              to video memory.
  1375.  
  1376.              This option can be permanently controlled using PCustom.
  1377.  
  1378.           (U) Unload From Memory:
  1379.           ~~~~~~~~~~~~~~~~~~~~~~~
  1380.              Tells ProLite to look for a copy of itself already loaded into
  1381.              memory, and to unload that copy if found.  When this option is
  1382.              used, ProLite will unload the resident copy and then return to
  1383.              DOS.
  1384.  
  1385.              This is the safest way to unload ProLite from memory!
  1386.  
  1387.              If ProLite was not previously loaded then this option is
  1388.              ignored.
  1389.  
  1390.              * When this option is used it should be the *only* option
  1391.                used.
  1392.  
  1393.           (X) Force Swapping to XMS Memory Only:
  1394.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1395.              This option forces ProLite to swap to XMS memory.  If there is
  1396.              not enough XMS memory available then ProLite will abort
  1397.              without attempting to swap to either disk or EMS memory.
  1398.  
  1399.              NOTE:  XMS swapping is only available with XMS (Extended
  1400.              Memory Specification) extended memory - not with simulated
  1401.              extended memory or extended memory which doesn't conform to
  1402.              the XMS standard.
  1403.  
  1404.              This option can be permanently controlled using PCustom.
  1405.  
  1406.  
  1407.  
  1408.  
  1409.           Loading and Unloading ProLite                            19 of 95
  1410.  
  1411.  
  1412.                      - Programmer's Productivity Pack Lite 1.00 -
  1413.  
  1414.  
  1415.           (?) Help:
  1416.           ~~~~~~~~~
  1417.              Displays a list of command line options and returns to DOS
  1418.              without going resident.  This can be accomplished using any
  1419.              command line option which is not recognized by ProLite.  This
  1420.              option is the same as "-H" described above.
  1421.  
  1422.           ProLite as a Stand-Alone Program:
  1423.           ---------------------------------
  1424.  
  1425.           By now you have a good grasp of how a memory-resident program is
  1426.           loaded into memory.  Now let's examine some of the differences
  1427.           between the memory-resident and the stand-alone or multitasking
  1428.           capabilities of ProLite.  ProLite, when loaded with the "/S"
  1429.           option, is designed to run as a stand-alone program under MS-DOS
  1430.           or as a background task under DESQview or TaskView/OmniView.
  1431.  
  1432.           The memory-resident versions of ProLite write directly to video
  1433.           memory when they output information to the screen.  There are
  1434.           several advantages to this technique.  First and foremost,
  1435.           writing directly to video memory is much faster than sending all
  1436.           screen output through the operating system.  Additionally, direct
  1437.           screen writing allows ProLite to retain more control over the
  1438.           screen.
  1439.  
  1440.           Programmers running ProLite under DESQview or TaskView/OmniView
  1441.           should consider the subject of "windows".  In deciding how to set
  1442.           up ProLite you should be aware that some features use the entire
  1443.           screen.  For instance, The ASCII and Color Attribute Chart will
  1444.           use the entire 25, 43 or 50 lines available on the screen
  1445.           (depending upon the current video mode and hardware
  1446.           capabilities).  Of course, before overwriting anything currently
  1447.           displayed on the screen, ProLite will copy the screen contents to
  1448.           its own internal buffer, and then restore the screen before
  1449.           exiting.  If you specify a window size smaller than the entire
  1450.           screen, sometimes ProLite will write outside the boundaries of
  1451.           that window.  It will always restore it when it is finished, so
  1452.           don't worry.
  1453.  
  1454.           When ProLite is running under a multitasking system (using the
  1455.           "-S" command line switch) it may not be the only program using
  1456.           the screen.  If another program is using the screen, it would be
  1457.           very rude for ProLite to overwrite the other program's output.
  1458.           To avoid this, ProLite sends its screen output to the "virtual
  1459.           screen" provided by the multitasking system, rather than directly
  1460.           to video memory.  This allows the multitasking system to retain
  1461.           control over which application has access to the actual screen at
  1462.           any given time.
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.           Loading and Unloading ProLite                            20 of 95
  1469.  
  1470.  
  1471.                      - Programmer's Productivity Pack Lite 1.00 -
  1472.  
  1473.  
  1474.           What this means to multitasking systems is that ProLite is very
  1475.           considerate of any other programs that might be running
  1476.           simultaneously.
  1477.  
  1478.           Renaming PROLITE.EXE:
  1479.           ---------------------
  1480.  
  1481.           You are free to change the name of PROLITE.EXE to any other name
  1482.           as long as the .EXE extension is not changed.  PCustom does not
  1483.           need to be able to find PROLITE.EXE to customize it.  However,
  1484.           you must not change the name of the configuration file
  1485.           (PROLITE.CFG).
  1486.  
  1487.           If you change the name of the configuration file, then ProLite or
  1488.           PCustom will simply write a new PROLITE.CFG file the next time
  1489.           they run.  The new file will have all the default values and will
  1490.           not retain any customizations you may have made.
  1491.  
  1492.  
  1493.           Unloading ProLite:
  1494.           ==================
  1495.  
  1496.           At the DOS prompt type "ProLite -U" and press <Enter>.  This will
  1497.           unload ProLite from memory (if it is safe to do so).  You may use
  1498.           "-U", "/U", "\U", or " U" to unload ProLite from memory (the "U"
  1499.           may be upper or lower case).  This is the safest way to unload
  1500.           ProLite from memory.
  1501.  
  1502.           Whether you are at the DOS prompt or not you can unload ProLite
  1503.           from memory by popping up The Programmer's Calculator and
  1504.           pressing <Alt><U>, <Alt><U>.  That's right, press it twice.  If
  1505.           you prefer you can press <Ctrl><U>, <Ctrl><U>.  We told you
  1506.           ProLite wasn't picky.
  1507.  
  1508.           If at any time you are unsure if ProLite is loaded in memory
  1509.           simply try to install it again.  It won't allow itself to be
  1510.           installed twice and will give you a message to the effect that it
  1511.           is already resident.  Pressing the Hot Keys will also tell you if
  1512.           it is resident or not.
  1513.  
  1514.  
  1515.           Sidekick Considerations:
  1516.           ========================
  1517.  
  1518.           If you are a Sidekick user, especially if you have been one for
  1519.           some time, you have probably noticed that Sidekick can cause
  1520.           difficulties for other memory-resident programs.  Especially for
  1521.           programs loaded after Sidekick.  If you are a dedicated Sidekick
  1522.           fan, and there are many of them around, then it would be
  1523.           beneficial for you to understand a little about Sidekick's inner
  1524.           workings.
  1525.  
  1526.  
  1527.           Loading and Unloading ProLite                            21 of 95
  1528.  
  1529.  
  1530.                      - Programmer's Productivity Pack Lite 1.00 -
  1531.  
  1532.  
  1533.           Sidekick is an important consideration for anyone designing
  1534.           memory-resident programs.  Sidekick is really an industry wide
  1535.           standard because of its popularity.  How well a memory-resident
  1536.           program gets along with Sidekick often determines how well a
  1537.           memory-resident program gets along with its users.
  1538.  
  1539.           With that in mind here are a few tips that could help you with
  1540.           all the programs you use while Sidekick is resident.
  1541.  
  1542.           As you read in Sidekick's manual, Sidekick should always be the
  1543.           last memory-resident program loaded into memory.  There is a very
  1544.           practical reason for this requirement.  The gist of the problem
  1545.           lies in Sidekick's use of the BIOS keyboard services.  In order
  1546.           to ensure that Sidekick will always be able to see any keystrokes
  1547.           directed to it, it takes steps to ensure that it gets first crack
  1548.           at all keystrokes.  How does Sidekick accomplish this feat?
  1549.           Well, not only does Sidekick grab the keyboard hardware interrupt
  1550.           when first loaded, it also monitors that interrupt constantly.
  1551.           If Sidekick sees another program grab the same interrupt,
  1552.           Sidekick grabs it right back.  While this may seem rude, it is
  1553.           actually a pretty good idea.  The problem is that Sidekick may
  1554.           grab it back more than once!  If the keyboard hardware interrupt
  1555.           is grabbed a second time, by any program at all, Sidekick grabs
  1556.           the vector again, which fouls up the ISR chain (and hangs your
  1557.           system to demonstrate its disapproval).
  1558.  
  1559.           Today this seems to directly contradict our view of how a well
  1560.           behaved program should conduct itself.  But before you pass
  1561.           judgment on Borland you should remember that Sidekick became
  1562.           available "way back when".  When memory-resident utilities were
  1563.           rarely seen and little understood.  At the time Sidekick was
  1564.           written there were very few programs that grabbed the keyboard
  1565.           hardware interrupt.  Primarily because there were very few
  1566.           memory-resident programs around.  Of course, one could argue that
  1567.           Borland should have corrected the problem in a later release.  If
  1568.           you've tried SideKick Plus, the next generation of Sidekick,
  1569.           you've seen that Borland has in fact corrected this problem.
  1570.  
  1571.           With this brief historical background out of the way, we can get
  1572.           down to the business of dealing with Sidekick's stingy attitude
  1573.           towards the keyboard interrupt.  Even though SideKick Plus is now
  1574.           available, there are still hundreds of thousands of people using
  1575.           Sidekick.  It is to these people that this information will be
  1576.           the most useful.
  1577.  
  1578.           Once you understand Sidekick's refusal to share with other
  1579.           programs, you will be able to prevent problems from arising.
  1580.           Simply make sure not to incur Sidekick's wrath by taking the
  1581.           keyboard interrupt away from it.  This holds true for any
  1582.           program, memory-resident or stand-alone.  Sidekick must always be
  1583.           catered to when dealing with the keyboard hardware interrupt.
  1584.  
  1585.  
  1586.           Loading and Unloading ProLite                            22 of 95
  1587.  
  1588.  
  1589.                      - Programmer's Productivity Pack Lite 1.00 -
  1590.  
  1591.  
  1592.           ProLite grabs the keyboard hardware interrupt twice.  Once when
  1593.           it loaded, and a second time when The Keystroke Reference Center
  1594.           is displayed.  That's how ProLite is able to show you the
  1595.           contents of the BIOS keyboard status bytes.
  1596.  
  1597.           It is for these reasons that ProLite was specially designed to
  1598.           work with Sidekick.  ProLite, during the process of loading
  1599.           itself into memory, alters Sidekick internally to prevent it from
  1600.           hogging up the keyboard interrupt.  This is very similar to the
  1601.           technique used by SideKick Plus when it is used in conjunction
  1602.           with Sidekick.  This technique works so well that ProLite can
  1603.           safely be loaded AFTER Sidekick, and Sidekick will not mind the
  1604.           company at all.
  1605.  
  1606.           There is a side effect to this technique (isn't there always?).
  1607.           When ProLite is loaded after Sidekick, Sidekick loses its ability
  1608.           to detect whether or not it has already been loaded into memory.
  1609.           This means that you could load a second copy of Sidekick into
  1610.           memory if you forget that it is already loaded.  Actually that's
  1611.           a very minor inconvenience compared to the alternative (Sidekick
  1612.           throwing up its hands and hanging your system).
  1613.  
  1614.  
  1615.           The DOS PRINT Program:
  1616.           ======================
  1617.  
  1618.           The DOS PRINT program was not designed to be unloaded from memory
  1619.           except by rebooting your system.  The reason we mention this here
  1620.           is because ProLite will not be able to unload itself if PRINT is
  1621.           loaded after it.  The obvious solution is to load PRINT before
  1622.           you load ProLite.  This will help to retain ProLite's ability to
  1623.           unload itself from memory.  Of course you still have the problem
  1624.           of unloading PRINT from memory when you no longer need it.  We
  1625.           also have a solution for that problem.  Registered users of
  1626.           ProLite receive a Bonus Disk containing tools to help you deal
  1627.           with programs like PRINT which were not designed to be unloaded.
  1628.  
  1629.  
  1630.           In Case of Conflicts With Other Memory-Resident Programs:
  1631.           =========================================================
  1632.  
  1633.           ProLite was carefully designed to ensure that it is well behaved
  1634.           and can get along with other memory-resident programs.  Of course
  1635.           today there are so many memory-resident utilities available that
  1636.           it simply wasn't possible to test ProLite with all of them.
  1637.  
  1638.           As a general rule, whenever you encounter a memory-resident
  1639.           program that doesn't get along well with ProLite, simply load
  1640.           ProLite before loading the other program.  In virtually every
  1641.           instance, this should solve any problems you may encounter with
  1642.           other memory-resident programs.
  1643.  
  1644.  
  1645.           Loading and Unloading ProLite                            23 of 95
  1646.  
  1647.  
  1648.                      - Programmer's Productivity Pack Lite 1.00 -
  1649.  
  1650.  
  1651.           One example is PopCalc from BellSoft, Inc.  PopCalc is extremely
  1652.           rude in the way it deals with other memory resident programs.  As
  1653.           pointed out here, the way to avoid conflicts is to load ProLite
  1654.           before loading PopCalc.
  1655.  
  1656.  
  1657.           ProLite and Batch Files:
  1658.           ========================
  1659.  
  1660.           Many people like to include ProLite in their AUTOEXEC.BAT(ch)
  1661.           file so that it will be loaded automatically each time the
  1662.           machine is turned on.  There is a number of details that should
  1663.           be taken into consideration before positioning ProLite in your
  1664.           AUTOEXEC.BAT file.
  1665.  
  1666.           First, if you want to be able to unload ProLite from memory, you
  1667.           should endeavor to load ProLite last among your memory-resident
  1668.           programs.  Of course if your other memory-resident programs can
  1669.           also be removed from memory then you may load them in any order.
  1670.           Just be sure to unload them in the reverse order from which they
  1671.           were installed.  This will avoid having "holes" in memory between
  1672.           programs.
  1673.           One other consideration when using batch files is the DOS
  1674.           ERRORLEVEL value returned by other programs.
  1675.  
  1676.           The programs that come with the Programmer's Productivity Pack
  1677.           Lite provide clear and detailed error messages if an error should
  1678.           occur.  But they also return values in the DOS ERRORLEVEL for any
  1679.           errors that result in program termination.  The vast majority of
  1680.           you will never need this information, but for the sake of
  1681.           consistency it is provided for those who may find it useful.
  1682.  
  1683.           DOS ERRORLEVEL will contain the following values under the
  1684.           specified conditions:
  1685.  
  1686.              00 No error occurred.
  1687.  
  1688.              01 Attempt to load a memory-resident program that was already
  1689.                 resident in memory.
  1690.  
  1691.              02 Attempt to load a memory-resident program after Sidekick
  1692.  
  1693.              03 Could not go resident due to an unsafe Hot Key.
  1694.  
  1695.              04 Incorrect DOS version.  Requires DOS 2.0 or above.
  1696.  
  1697.              05 A file access error occurred.
  1698.  
  1699.              06 Program aborted by the user.
  1700.  
  1701.              07 An EMS memory error occurred.
  1702.  
  1703.  
  1704.           Loading and Unloading ProLite                            24 of 95
  1705.  
  1706.  
  1707.                      - Programmer's Productivity Pack Lite 1.00 -
  1708.  
  1709.  
  1710.              08 Insufficient RAM memory to continue.
  1711.  
  1712.              09 Insufficient EMS memory to continue.
  1713.  
  1714.              10 Error with overlays.
  1715.  
  1716.              55 Any other error.
  1717.  
  1718.              99 Internal program error.
  1719.  
  1720.  
  1721.           ProLite Error Messages:
  1722.           ======================
  1723.  
  1724.           Unlike many programs that display a meaningless code for each
  1725.           error, the ProLite programs all display simple, clear messages
  1726.           when an error occurs.  In almost every case you will understand
  1727.           any error messages you encounter without needing any additional
  1728.           information.
  1729.  
  1730.           There are a few error situations in which the problem may not be
  1731.           so obvious.  Two errors that fall into this category are a
  1732.           missing swap file, and incorrect video modes.  The following
  1733.           information describes each of these two situations in detail.
  1734.  
  1735.           Beeps and Doesn't Pop Up:
  1736.           -------------------------
  1737.  
  1738.              If you press a Hot Key and ProLite beeps instead of popping up
  1739.              there can be two possible causes.
  1740.  
  1741.              Not in 80 Column Text Mode.  Another situation which would
  1742.              cause ProLite to beep rather than popping up, is pressing a
  1743.              Hot Key while the system is in graphics mode, or in 40 or 132
  1744.              column text mode.  The solution is to switch back to an 80
  1745.              column text mode before popping up ProLite.
  1746.  
  1747.              ProLite will beep but refuse to pop up if the swap file(s)
  1748.              (marked with the hidden attribute) are deleted, renamed, or
  1749.              moved.
  1750.  
  1751.              There are also two situations in which ProLite will not pop
  1752.              up, but no beep sound will be generated to indicate a problem.
  1753.              This is because these situations are not errors, rather they
  1754.              are safety measures to prevent errors from arising.  These
  1755.              situations are explained below.
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.           Loading and Unloading ProLite                            25 of 95
  1764.  
  1765.  
  1766.                      - Programmer's Productivity Pack Lite 1.00 -
  1767.  
  1768.  
  1769.           Doesn't Beep or Pop Up:
  1770.           -----------------------
  1771.  
  1772.              Unsafe to Pop Up.  There is one situation where no error
  1773.              message will appear to explain the current situation.  This
  1774.              occurs when you attempt to pop up ProLite at a time when it is
  1775.              not safe for ProLite to pop up.  This is a safety measure
  1776.              designed to prevent problems from arising.  When you press a
  1777.              Hot Key, ProLite does a number of things before actually
  1778.              popping up on your screen.  First and most importantly,
  1779.              ProLite checks the current state of your system to see if it
  1780.              is safe to pop up.  If ProLite determines that it may not be
  1781.              safe to pop up at that particular time, then it will instead
  1782.              monitor the system very closely for the next two seconds in
  1783.              case things become safe during that time.  If ProLite
  1784.              determines that the system is in a state that enables ProLite
  1785.              to pop up safely, then ProLite will pop up.  However, if the
  1786.              two seconds pass without any significant change in the state
  1787.              of things, ProLite will simply not pop up.  You will rarely,
  1788.              if ever, encounter this situation.  But if you do, then you'll
  1789.              know that ProLite is not asleep at the switch, but rather it
  1790.              is taking steps to ensure that you encounter no unexpected
  1791.              surprises.
  1792.  
  1793.              When is it unsafe for ProLite to pop up?  For instance,
  1794.              ProLite uses DOS services for several things.  If another
  1795.              program is using that same DOS service then ProLite should
  1796.              wait until the service is completed before interrupting the
  1797.              other program.  In other words, ProLite avoids interrupting
  1798.              any services that ProLite will need to use.
  1799.  
  1800.           There is also a special case regarding the pop-up DOS shell
  1801.           capability of ProLite.  You cannot pop-up the DOS shell if you
  1802.           are already at the DOS command line (this includes popping up
  1803.           another TSR over the DOS command line, then attempting to pop up
  1804.           a DOS shell).
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.           Loading and Unloading ProLite                            26 of 95
  1823.  
  1824.  
  1825.                      - Programmer's Productivity Pack Lite 1.00 -
  1826.  
  1827.  
  1828.                     ---------------------------------------------
  1829.                      The Programmer's Calculator and Attachments
  1830.                     ---------------------------------------------
  1831.  
  1832.  
  1833.           The Programmer's Calculator and its attachments, The ASCII and
  1834.           Color Attribute Chart and The Keystroke Reference Center, are an
  1835.           integrated set of tools that are powerful, flexible, and fun to
  1836.           use.
  1837.  
  1838.           Not even a hand-held programmer's calculator could provide all of
  1839.           the features that are built into The Programmer's Calculator.
  1840.           The Programmer's Calculator has enough features to satisfy the
  1841.           professional programmer and yet remains simple enough to be
  1842.           useful to the newcomer or student.  The Quick Start Tutorial for
  1843.           The Programmer's Calculator begins below.  The In-Depth Reference
  1844.           Guide begins on page 34.
  1845.  
  1846.           The ASCII and Color Attribute Chart provides a wealth of
  1847.           information on the different ASCII characters, color attributes,
  1848.           monochrome attributes, and extended characters.  Now you can
  1849.           press a key instead of leaving your work to find a reference
  1850.           book.  The Quick Start Tutorial for The ASCII and Color
  1851.           Attributes Chart begins on page 47.  The In-Depth Reference Guide
  1852.           begins on page 49.
  1853.  
  1854.           After you try The Keystroke Reference Center you may ask yourself
  1855.           how you ever got along without it.  A programmer's dream!  BIOS
  1856.           scan codes and dBASE INKEY() values on screen at the touch of a
  1857.           key.  The Quick Start Tutorial for The Keystroke Reference Center
  1858.           begins on page 52.  The In-Depth Reference Guide begins on page
  1859.           55.
  1860.  
  1861.           The Screen Blanking and Disk Parking utility is available from
  1862.           any one of the attachments to The Programmer's Calculator.  The
  1863.           separate In-Depth Reference Guide on page 60 gives you all the
  1864.           information you need concerning the Screen Blanking and Disk
  1865.           Parking capability.
  1866.  
  1867.  
  1868.           The Quick Start Tutorial:
  1869.           =========================
  1870.  
  1871.           This Quick Start Tutorial is designed to familiarize you with the
  1872.           functions and capabilities of The Programmer's Calculator.
  1873.  
  1874.           Be sure that ProLite is resident in memory.  Type "ProLite"
  1875.           <Enter> at the DOS prompt.  Once you are sure that ProLite is
  1876.           resident in memory you may activate, or pop up, the Calculator,
  1877.           by holding down the <Alt> key and pressing <LeftShift>.  This
  1878.           will bring up The Programmer's Calculator display.
  1879.  
  1880.  
  1881.           The Programmer's Calculator                              27 of 95
  1882.  
  1883.  
  1884.                      - Programmer's Productivity Pack Lite 1.00 -
  1885.  
  1886.  
  1887.           As you can see, you have six outlined boxes making up The
  1888.           Programmer's Calculator display.  The boxes are: The Decimal Box;
  1889.           The Hexadecimal Box; The Binary Box; The Octal Box; The Program
  1890.           Information, Date and Time Box; and The Saved Values Box.
  1891.  
  1892.           If you look at the box titles you will see that the Decimal Box
  1893.           is highlighted on your screen.  This means that you are currently
  1894.           in Decimal format.  In other words, numbers are entered as
  1895.           Decimal numbers.  You will still be able to see the same values
  1896.           appear in each of the other numeric formats simultaneously.  The
  1897.           Signed heading is also highlighted.  This means you can enter
  1898.           numbers as positive or negative values.
  1899.  
  1900.           To enter numbers into The Programmer's Calculator, you can use
  1901.           the top row of number keys, or the numeric keypad.  ProLite does
  1902.           not care whether NumLock is set or not.  It is smart enough to
  1903.           know that if you press the <PgUp> key, you want it to enter the
  1904.           value "9", because that is the key that shares <PgUp>.
  1905.  
  1906.           The Programmer's Calculator will accept any digit from 0-9 in
  1907.           Decimal format.  In Hexadecimal format, the Calculator will
  1908.           accept any value from 0-9 and A-F.  In Binary Format the
  1909.           acceptable digits are 0 and 1.  In Octal Format the acceptable
  1910.           digits are 0-7.
  1911.  
  1912.           Common operations like addition, subtraction, multiplication, or
  1913.           division, are performed by pressing their corresponding key.
  1914.           Press <+> for addition, <-> for subtraction, <*> for
  1915.           multiplication, and either </> or <\> for division.
  1916.  
  1917.           Since we don't always enter our numbers correctly it is helpful
  1918.           to know how to clear values, delete digits, and even start from
  1919.           scratch all over again.  Use the <BackSpace> or <Delete> keys to
  1920.           delete a single digit at a time, or use <^E> to clear the current
  1921.           Entry.  Use <^A> to Clear All (to reset the whole Calculator).
  1922.           Remember, <^E> means Ctrl-E, Alt-E, or just plain "E", as
  1923.           explained on page 12.
  1924.  
  1925.           Let's start with a simple problem.  Type the following, watching
  1926.           the screen to see what happens:
  1927.  
  1928.              <5> <+> <5> <=>
  1929.  
  1930.           There you have it!  A Calculator can't get much easier to operate
  1931.           than that!
  1932.  
  1933.           A whole series of calculations can be performed before ever
  1934.           requesting a final result.  For instance, type the following:
  1935.  
  1936.              <5> <+> <7> <+> <2> <-> <1> <=>
  1937.  
  1938.  
  1939.  
  1940.           The Programmer's Calculator                              28 of 95
  1941.  
  1942.  
  1943.                      - Programmer's Productivity Pack Lite 1.00 -
  1944.  
  1945.  
  1946.           As you entered the numbers you noticed that the values
  1947.           accumulated in the top value until you requested a final result
  1948.           by pressing <=>.  Then the answer appeared on the bottom line.  A
  1949.           final result can also be obtained by pressing <Enter> instead of
  1950.           <=>.  Type the following:
  1951.  
  1952.              <100> <-> <50> <-> <25> <+> <10> <Enter>
  1953.  
  1954.           Now let's try multiplication.  Type the following:
  1955.  
  1956.              <16> <*> <4> <*> <4> <=>
  1957.  
  1958.           Division works the same.  Type the following:
  1959.  
  1960.              <64> </> <2> <\> <2> <=>
  1961.  
  1962.           Since this is integer division you will not get any fractional
  1963.           answers.  As an example of this, type the following:
  1964.  
  1965.              <49> </> <10> <=>
  1966.  
  1967.           Ten will only go into 49 four times.  There is no floating
  1968.           decimal point or remainder given.  To get the remainder you would
  1969.           need to use the operation known as "Modulus" which is explained
  1970.           in the In-Depth Reference Guide (page 42).
  1971.  
  1972.           If you have been watching the screen closely you have noticed
  1973.           that even though you have only entered values in Decimal format
  1974.           the operations have been carried out simultaneously in each of
  1975.           the other numeric formats.
  1976.  
  1977.           Even after you have finished this tutorial you probably won't
  1978.           remember all of the features available within The Programmer's
  1979.           Calculator.  To help you remember, there is a built-in Quick
  1980.           Reference Menu.  To activate the Menu simply press <M>.
  1981.  
  1982.           If you have done any assembly language programming, then you are
  1983.           probably familiar with all of the abbreviations used in the Menu;
  1984.           such as SHL for Shift Left and ROR for Rotate Right, etc.
  1985.           However, if you are not familiar with these abbreviations, don't
  1986.           worry.  Every single Menu option is explained in the In-Depth
  1987.           Reference Guide (page 34).  Besides, you're going to get familiar
  1988.           with a few of them in just a minute.
  1989.  
  1990.           You don't have to bring up the Menu in order to execute a
  1991.           command.  The Menu exists solely as a quick reference tool to
  1992.           help you remember which keys perform which operations.  Once you
  1993.           have used the Calculator a few times you will find that many
  1994.           times you won't need the Menu at all.
  1995.  
  1996.  
  1997.  
  1998.  
  1999.           The Programmer's Calculator                              29 of 95
  2000.  
  2001.  
  2002.                      - Programmer's Productivity Pack Lite 1.00 -
  2003.  
  2004.  
  2005.           When you press a key that corresponds to an operation the Menu
  2006.           will disappear and the action will be executed.  Pressing <Esc>
  2007.           makes the Menu disappear without executing any other action.  Try
  2008.           pressing <Esc>.
  2009.  
  2010.           Let's try one of these functions.  Enter the value "57" into the
  2011.           Calculator and press <M> to bring up the Menu.  Shift Left is
  2012.           executed by pressing <F3>.  We are going to shift the value left
  2013.           4 times.  Press <F3> once.  Each time you press <F3>, the value
  2014.           will be shifted left 1 bit position.  You can see this clearly by
  2015.           watching the Binary Box as you press <F3> three more times.
  2016.  
  2017.           Now we are going to shift it back to the right 4 times.  Type <M>
  2018.           to bring up the Menu.  Shift Right (SHR) is <^F3>.  Remember, "^"
  2019.           means <Ctrl>, <Shift>, or <Alt>.  Press <^F3> to shift the value
  2020.           to the right.  If you do this 4 times you will have the original
  2021.           value back.
  2022.  
  2023.           The Shift Arithmetic Left <F7> and Right <^F7> and the Rotate
  2024.           Left <F5> and Right <^F5> operations function the same way.  Each
  2025.           time you press the corresponding key, the value is shifted or
  2026.           rotated one bit position.  Try it a few times.  If these
  2027.           functions are new to you, perhaps you would like to take the time
  2028.           now to read Appendices A (page 80) and B (page 89) at the back of
  2029.           The User's Guide.  They should help clarify these operations for
  2030.           you.
  2031.  
  2032.           Rotate through the Carry Left <F6> and Right <^F6> operate a
  2033.           little differently.  The reason for this is that in order to
  2034.           properly retain the value of the carry flag during the rotate
  2035.           operation, we must do the entire operation in a single step.
  2036.           Let's try it.
  2037.  
  2038.           Enter any value you wish and press <F6>.  You will see a small
  2039.           window open asking you how many bit positions to rotate the
  2040.           value.  For this example, press <8> <Enter>, and watch the
  2041.           Calculator carry out your command.  To rotate back to the right
  2042.           press <^F6>.    Press <8> and <Enter> again and you have your
  2043.           original value back.
  2044.  
  2045.           Ok.  Let's move on to something new.  Press the <TAB> key a few
  2046.           times and watch the screen as you do.  As you can see, the <TAB>
  2047.           key moves you from one numeric format to the next in a clockwise
  2048.           direction.  If you were to press <Ctrl><Tab>, <Alt><Tab>, or
  2049.           <Shift><Tab> instead, you would move counterclockwise from one
  2050.           format to the next.
  2051.  
  2052.           Now, using the <TAB> key, return to Decimal format again.  A
  2053.           shortcut to switching numeric formats is to press the first
  2054.           letter of the format you wish to be in.  For instance, press <O>
  2055.           and you will be in Octal format, press <B> and you will be in
  2056.  
  2057.  
  2058.           The Programmer's Calculator                              30 of 95
  2059.  
  2060.  
  2061.                      - Programmer's Productivity Pack Lite 1.00 -
  2062.  
  2063.  
  2064.           Binary format.  Now press <H> for Hexadecimal format.  When you
  2065.           are in Hexadecimal format, the letters A through F correspond to
  2066.           the hexadecimal values A through F.  Obviously, pressing <B> will
  2067.           not move you into Binary format, but will rather enter the value
  2068.           0B Hex (11 decimal).  So will <Shift><B> (upper case).  Try it.
  2069.           However, if you press <Ctrl><B> or <Alt><B> you will move to
  2070.           Binary format.  Just remember that in Hexadecimal format the
  2071.           letters A through F are numeric values.
  2072.  
  2073.           Get into Binary format now, using whichever method you prefer.
  2074.           <^C>, as you may have noticed on the Menu, operates the feature
  2075.           "Change Bits", ProLite's bit manipulation facility.  <C> or
  2076.           <Alt><C> brings up the Change Bits option as well (as explained
  2077.           on page 12).  The line above the 32 bit value in the Binary Box
  2078.           is highlighted.  There is a small arrow pointing to one of the
  2079.           bits.  You can move back and forth using the <Left> and <Right>
  2080.           arrow keys.  Try it.  The <Home> key takes you directly to the
  2081.           leftmost bit and the <End> key takes you directly to the
  2082.           rightmost bit.  When you are positioned over a bit that you want
  2083.           to change simply press the <Space> bar to toggle the bit.  See
  2084.           how it affects the values in the other numeric formats.  After
  2085.           you have changed the particular bit or bits that you wanted to
  2086.           change, press <Enter> to keep the changes, or press <Esc> to
  2087.           cancel the changes.  Pressing <Esc> will always get you out of
  2088.           the bit manipulation facility.
  2089.  
  2090.           Now, move back to Decimal format.  Once you are in the Decimal
  2091.           Box, press <C> again.  As you can see, this option is available
  2092.           from each of the four numeric formats.  When you are finished
  2093.           manipulating bits and press <Enter> or <Esc> you will be returned
  2094.           to the format you were in before.
  2095.  
  2096.           As you might have guessed, when you are in Hexadecimal format <C>
  2097.           is a value.  Therefore, you need to press <Ctrl><C> or <Alt><C>
  2098.           to activate the bit manipulation facility.
  2099.  
  2100.           To toggle the current value from positive to negative, or from
  2101.           negative to positive, simply press <^-> (<Ctrl><Minus>).  Enter a
  2102.           value.  Press <Ctrl><Minus>.  Press it again.  Press it again.
  2103.           In the Decimal format nothing changes, except the sign.  Watch
  2104.           what it's doing in the other numeric formats.
  2105.  
  2106.           The Signed mode allows positive and negative values.  The
  2107.           Unsigned mode does not.  Enter the positive value 256 in Decimal.
  2108.           To switch to Unsigned mode press <^T>.  That Toggles the sign
  2109.           mode.  Obviously you can't toggle the sign of the current value
  2110.           in Unsigned mode.  Try it.  Press <Ctrl><Minus>.
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.           The Programmer's Calculator                              31 of 95
  2118.  
  2119.  
  2120.                      - Programmer's Productivity Pack Lite 1.00 -
  2121.  
  2122.  
  2123.           Wow!  4,294,967,040 sure doesn't look like 256 or -256!  We won't
  2124.           go into this now, but, if you read the section on "Range Of
  2125.           Values" (page 34) and "Signed And Unsigned Modes" (page 36) they
  2126.           will help to explain this phenomenon.
  2127.  
  2128.           How about saving, or storing, values for use later, and then
  2129.           inserting them back into your calculations?  Well, as the Menu
  2130.           shows, the <F9> key is used to save values, and <Ctrl><F9>,
  2131.           <Alt><F9>, or <Shift><F9> are used to insert the values back into
  2132.           a later calculation.
  2133.  
  2134.           You can use <^S> to Save a value if you don't like using a
  2135.           function key.  You can use <^I> to Insert a value instead of
  2136.           <^F9> if you prefer.
  2137.  
  2138.           Here's how it works.  First clear the Calculator with <^A>.
  2139.           Enter a value.  Press <F9>.  Since you have only one value
  2140.           present, ProLite knows which one you want to save and saves it
  2141.           automatically.  Now enter <+> and another value.  Press <F9>
  2142.           again.  Since you have more than one value present a window will
  2143.           open with a simple pick list asking you which one you want to
  2144.           save.  Like other moving bar Menus, simply use the arrow keys to
  2145.           highlight the value you wish to save and press <Enter> to save
  2146.           it.  Pressing <Esc> will cancel the save operation.
  2147.  
  2148.           Likewise, if all four memory slots are full, a pick list will
  2149.           appear asking you which one to overwrite.
  2150.  
  2151.           Now you are ready to Insert a saved value into the current
  2152.           calculation.  Press <^F9> or <^I>.  If only one memory slot has a
  2153.           value saved in it, that value is automatically inserted.  Since
  2154.           there is more than one saved value, a pick list will appear
  2155.           asking you which value to insert.  Pick one and press <Enter>.
  2156.           That's about as easy to use as you can get!
  2157.  
  2158.           What if you need to leave the computer for a few minutes to do
  2159.           something else?  Well, you will probably want to blank your
  2160.           screen to prevent it from getting screen burns as a result of
  2161.           having the same pixels lit for a long time.  You should also park
  2162.           your hard disk (or disks) in case something happens while you are
  2163.           gone.  All these things are available at the touch of a key!
  2164.  
  2165.           Press <^P> for Park and Blank.  Your screen will blank and a dim
  2166.           clock will appear (so you'll know that your computer is still
  2167.           on), and your hard disk (or disks) will also be parked on the
  2168.           last cylinder.
  2169.  
  2170.           By the way, this dim clock will never burn your screen because
  2171.           every 60 seconds it will move to another position.  This means
  2172.           that for every minute that a pixel is lit, it will be blank for
  2173.           over 3 hours!
  2174.  
  2175.  
  2176.           The Programmer's Calculator                              32 of 95
  2177.  
  2178.  
  2179.                      - Programmer's Productivity Pack Lite 1.00 -
  2180.  
  2181.  
  2182.           To return to what you were doing when you come back to your
  2183.           computer simply press any key.
  2184.  
  2185.           What if you want to change the Hot Key that pops up the
  2186.           Calculator?  As you can see on the Menu, pressing <^Z> will
  2187.           enable you to change the Hot Key "on the fly".  We won't do it
  2188.           now, but this is how it's done.  Refer to the In-Depth Reference
  2189.           Guide (page 38) for complete information.
  2190.  
  2191.           What if you pop up the Calculator and it covers up something on
  2192.           the screen that you need to refer to?  Well, just move the
  2193.           Calculator out of the way.
  2194.  
  2195.           To move the Calculator up or down simply hold down the <Alt> key
  2196.           and press the <Up> or <Down> arrows.  Each time you press
  2197.           <Alt><Up> or <Alt><Down> the Calculator will move one line up or
  2198.           down.  You can move quickly to the top or bottom of the screen
  2199.           using <Alt><PgUp> or <Alt><PgDn>.  When moving the display you
  2200.           must use <Alt> and a direction key.  <Shift> and <Ctrl> will not
  2201.           work here.  Don't feel constrained, though.  You can use <Home>
  2202.           instead of <PgUp> and <End> instead of <PgDn>.
  2203.  
  2204.           You can unload ProLite from memory right from within the
  2205.           Calculator.  Press <Alt><U>, <Alt><U> (be sure to press <Alt><U>
  2206.           twice).  Of course, <Ctrl><U>, <Ctrl><U> will also work.  A
  2207.           Message Window will open informing you whether it is safe or
  2208.           unsafe to unload.  Regardless of whether it's safe or not,
  2209.           pressing <Esc> will return you to the Calculator.  If it is, in
  2210.           fact, safe to unload, pressing any key other than <Esc> will
  2211.           unload ProLite from memory.
  2212.  
  2213.           Well, that completes the Quick Start Tutorial for The
  2214.           Programmer's Calculator.  After tinkering with it for a while,
  2215.           you will find that it is extremely powerful, flexible, and very
  2216.           easy to learn and use.
  2217.  
  2218.           You've covered a lot of ground already!  You know how to perform
  2219.           mathematical calculations and just about every low level bit
  2220.           manipulation you can think of in four numeric formats, as well as
  2221.           how to change the Hot Key, move the display, save and insert
  2222.           values, toggle the sign, blank your screen and park your hard
  2223.           disk(s).  Congratulations!  We told you the Calculator would be
  2224.           easy to use!
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.           The Programmer's Calculator                              33 of 95
  2236.  
  2237.  
  2238.                      - Programmer's Productivity Pack Lite 1.00 -
  2239.  
  2240.  
  2241.                     ---------------------------------------------
  2242.                      The Programmer's Calculator and Attachments
  2243.                     ---------------------------------------------
  2244.  
  2245.  
  2246.           The In-Depth Reference Guide:
  2247.           =============================
  2248.  
  2249.           The Programmer's Calculator that is built into ProLite is a very
  2250.           flexible and powerful Programmer's Calculator.  As a matter of
  2251.           fact, there are currently no Programmer's Calculators available
  2252.           (even hand-held types) that provide all the features available in
  2253.           the ProLite Programmer's Calculator.
  2254.  
  2255.           The following pages provide detailed information on the commands
  2256.           and operations available in this Programmer's Calculator, as well
  2257.           as helpful information concerning its use.
  2258.  
  2259.           The Range Of Values Available:
  2260.           ------------------------------
  2261.  
  2262.           The Programmer's Calculator provides full 32 bit (double word)
  2263.           values in four numeric formats and in both Signed and Unsigned
  2264.           modes.  The ranges of these values are as follows.
  2265.  
  2266.           In Signed mode:
  2267.  
  2268.              Decimal format:
  2269.  
  2270.                 -2,147,483,648 to +2,147,483,647
  2271.  
  2272.              Hexadecimal format:
  2273.  
  2274.                 8000 0000 to 7FFF FFFF
  2275.  
  2276.              Binary format:
  2277.  
  2278.                 10000000 00000000 00000000 00000000
  2279.                                           to
  2280.                 01111111 11111111 11111111 11111111
  2281.  
  2282.              Octal format:
  2283.  
  2284.                 20000000000 to 17777777777
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.           The Programmer's Calculator                              34 of 95
  2295.  
  2296.  
  2297.                      - Programmer's Productivity Pack Lite 1.00 -
  2298.  
  2299.  
  2300.           In Unsigned mode:
  2301.  
  2302.              Decimal format:
  2303.  
  2304.                 0 to 4,294,967,295
  2305.  
  2306.              Hexadecimal format:
  2307.  
  2308.                 0000 0000 to FFFF FFFF.
  2309.  
  2310.              Binary format:
  2311.  
  2312.                 00000000 00000000 00000000 00000000
  2313.                                           to
  2314.                 11111111 11111111 11111111 11111111.
  2315.  
  2316.              Octal format:
  2317.  
  2318.                 000000000000 to 37777777777.
  2319.  
  2320.           The Programmer's Calculator Display:
  2321.           ------------------------------------
  2322.  
  2323.           Once ProLite is loaded into memory, The Programmer's Calculator
  2324.           is accessed by pressing its Hot Key.  The default Hot Key is
  2325.           <LeftShift><Ctrl>.  You can change the default Hot Key using
  2326.           PCustom.  Pressing the Hot Key will bring up The Programmer's
  2327.           Calculator display.
  2328.  
  2329.           The Programmer's Calculator display is designed to show you all
  2330.           the values in the four numeric formats simultaneously.  This
  2331.           feature is especially helpful to those who are just learning
  2332.           about other numeric bases.  It also helps you to get a feel for
  2333.           the relationship between the different numeric bases commonly
  2334.           used in the computer industry.
  2335.  
  2336.                (Due to space limitations and printer incompatibilities,
  2337.                 this figure appears only in the complete Programmer's
  2338.                       Productivity Pack printed User's Guide.)
  2339.  
  2340.                       Figure 1: Programmer's Calculator Display
  2341.  
  2342.           In addition, the display tells you which numeric format you are
  2343.           currently in, whether you are in Signed or Unsigned mode, whether
  2344.           there is any mathematical operation pending, what values (if any)
  2345.           are saved, the version of ProLite that you are using, the date,
  2346.           and the time.
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.           The Programmer's Calculator                              35 of 95
  2354.  
  2355.  
  2356.                      - Programmer's Productivity Pack Lite 1.00 -
  2357.  
  2358.  
  2359.           The display is also designed to enable you to see whatever was on
  2360.           the screen before the Calculator was popped up.  This is
  2361.           accomplished by moving the Calculator display to uncover what is
  2362.           underneath it, whenever the need arises.
  2363.  
  2364.           The Quick Reference Menu:
  2365.           -------------------------
  2366.  
  2367.           A Quick Reference Menu is available to refer to while learning to
  2368.           use the Calculator, or to access operations that may not be used
  2369.           often enough to memorize.
  2370.  
  2371.                (Due to space limitations and printer incompatibilities,
  2372.                 this figure appears only in the complete Programmer's
  2373.                       Productivity Pack printed User's Guide.)
  2374.  
  2375.                          Figure 2: The Quick Reference Menu
  2376.  
  2377.           To open the Menu press <^M>.  Of course, as explained on page 12,
  2378.           you can use <M>, <Ctrl><M>, <Alt><M> or <Shift><M>.
  2379.  
  2380.           The Menu lists all of the functions available in The Programmer's
  2381.           Calculator.  There are, however, more keystrokes than those
  2382.           listed here to operate each of the functions.
  2383.  
  2384.           Signed And Unsigned Modes:
  2385.           --------------------------
  2386.  
  2387.           The Programmer's Calculator gives you the ability to choose
  2388.           whether the values will be treated as Signed or Unsigned.  Signed
  2389.           values may be negative or positive.  Unsigned values may only be
  2390.           positive.  This allows the Calculator to much more closely mimic
  2391.           the actual operations available at the assembly language level.
  2392.  
  2393.           Refer to "The Range of Values Available" (page 34) to see what
  2394.           the numeric limitations are in each of the modes and formats.
  2395.  
  2396.           To toggle (switch back and forth) between Signed and Unsigned
  2397.           modes use <^T>.
  2398.  
  2399.           If you switch into Unsigned mode while you have a negative number
  2400.           in the display the Calculator will treat it according to its
  2401.           value in Binary format.  You will go from a small, negative value
  2402.           to a huge, positive value instantly.  If this is unclear to you,
  2403.           refer to Appendix B, "Two's Complement Numbers" (page 89).
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.           The Programmer's Calculator                              36 of 95
  2413.  
  2414.  
  2415.                      - Programmer's Productivity Pack Lite 1.00 -
  2416.  
  2417.  
  2418.           The Four Numeric Formats:
  2419.           -------------------------
  2420.  
  2421.           The Programmer's Calculator provides you with four numeric
  2422.           formats through which values may be entered.  Values can only be
  2423.           entered in the format which is current (the format which is
  2424.           highlighted on the display).  However, any values which are
  2425.           entered will always be displayed in all four formats
  2426.           simultaneously.  Values may be entered as either decimal,
  2427.           hexadecimal, binary, or octal, depending upon which format is
  2428.           current.
  2429.  
  2430.           The Programmer's Calculator will only accept values that are
  2431.           relevant to the current format.  In Decimal it will accept 0-9.
  2432.           In Hexadecimal it will accept 0-9 and A-F.  In Binary it will
  2433.           accept 0 or 1.  In Octal it will accept 0-7.  Attempting to enter
  2434.           a value which is not a part of the digit set for a particular
  2435.           format will cause The Programmer's Calculator to beep and ignore
  2436.           the keystroke.
  2437.  
  2438.           Switching formats is easy.  There are several ways you can do it.
  2439.  
  2440.           <Tab>    The <Tab> key switches to the next numeric format
  2441.                    clockwise in the display.  It will go from Decimal to
  2442.                    Hexadecimal to Binary to Octal and back to Decimal.
  2443.  
  2444.           <^Tab>   Pressing <Shift><Tab>, <Alt><Tab> or <Ctrl><Tab> moves
  2445.                    backwards, or counterclockwise, through the display.
  2446.  
  2447.           You may also switch formats using the first letter of the numeric
  2448.           format.
  2449.  
  2450.           <^D>  switches to Decimal format.
  2451.  
  2452.           <^H>  switches to Hexadecimal format.
  2453.  
  2454.           <^B>  switches to Binary format.
  2455.  
  2456.           <^O>  switches to Octal format.
  2457.  
  2458.           When you are in Hexadecimal format, the <B> and <D> keys
  2459.           represent the hexadecimal values 0B Hex (11) and 0D Hex (13), so
  2460.           be sure to use either the <Alt> or <Ctrl> key in conjunction with
  2461.           the letter to switch to Binary or Decimal format.
  2462.  
  2463.           The Calculator Commands:
  2464.           ------------------------
  2465.  
  2466.           When you are in The Programmer's Calculator you have all of these
  2467.           commands at your disposal.  They are all listed on the Menu, but
  2468.           the Menu does not have to be visible for you to use the commands.
  2469.  
  2470.  
  2471.           The Programmer's Calculator                              37 of 95
  2472.  
  2473.  
  2474.                      - Programmer's Productivity Pack Lite 1.00 -
  2475.  
  2476.  
  2477.           Change Hot Key - To change the Hot Key that activates the
  2478.           Calculator, press <^Z>.  This will open a window asking you to
  2479.           press the key combination you would like to use to pop up the
  2480.           Calculator.  If you press a key combination that is already in
  2481.           use for another pop-up, such as the Pop-Up DOS Shell, it will
  2482.           beep and wait for you to enter another key.  Also, if you press a
  2483.           normal typing key like <A> or <B> or <F5>, that is used often,
  2484.           ProLite will beep and wait for you to enter a different key.  You
  2485.           should always use a combination of at least two keys.  Either
  2486.           <Shift>, <Alt>, or <Ctrl> should always be one of the keys in the
  2487.           key combination used as a Hot Key.  ProLite will not accept a Hot
  2488.           Key made up of two modifier keys, either, "on the fly".  You
  2489.           cannot enter <Alt><LeftShift> or any other such combination as a
  2490.           Hot Key from within the program.  That is why we didn't have you
  2491.           change Hot Keys in The Quick Start Tutorial.  You could not have
  2492.           gone back to the default <Alt><LeftShift> without using PCustom.
  2493.  
  2494.           If you decide not to change the Hot Key after having invoked this
  2495.           option, press ^@.  You could also view this as <Ctrl><TopRow2>
  2496.           since the shift key need not be pressed.  The Hot Key will remain
  2497.           unchanged and you will be able to return to the Calculator by
  2498.           pressing any key.
  2499.  
  2500.           If you are using ProLite, you may also change the hot key for the
  2501.           pop-up DOS shell through this option.
  2502.  
  2503.           TIP:
  2504.              Some Hot Keys are more effective than others.  In order to
  2505.              determine which Hot Keys are most effective, keep in mind how
  2506.              most software views your keyboard.  Most software ignores
  2507.              unrecognized keystrokes.  This is important because many of
  2508.              the keystrokes they don't recognize, they also don't pass on
  2509.              to other programs that may be present.  Using partial key
  2510.              combinations like <Alt><LeftShift> or <Ctrl><Alt> will many
  2511.              times circumvent this problem.  Since most programs expect
  2512.              something along with these modifier keys they will not take
  2513.              any action on key combinations such as these.  Therefore,
  2514.              ProLite will be able to see its Hot Key regardless of how your
  2515.              other programs deal with unrecognizable key combinations.
  2516.  
  2517.              Of course, ProLite also expects something other than modifier
  2518.              keys (like <Alt><LeftShift>) when it is waiting for keyboard
  2519.              input.  To provide you with a means of selecting these
  2520.              modifier key combinations as Hot Keys, PCustom presents them
  2521.              in a simple pop up menu from which you may choose.
  2522.  
  2523.           Change Bits - This very handy bit manipulation facility enables
  2524.           you to toggle the setting of any bit or bits in a value.  You do
  2525.           not have to be in Binary format to use this feature.  If you are
  2526.           not in Binary format when you invoke the Change Bits facility you
  2527.  
  2528.  
  2529.  
  2530.           The Programmer's Calculator                              38 of 95
  2531.  
  2532.  
  2533.                      - Programmer's Productivity Pack Lite 1.00 -
  2534.  
  2535.  
  2536.           will be placed temporarily in Binary format.  Upon completion you
  2537.           will be returned to whatever format you were in previously.
  2538.  
  2539.           The Change Bits feature is invoked by pressing <^C>.  Of course,
  2540.           if you are in Hexadecimal format <C> or <Shift><C> is a value, so
  2541.           you would need to use <Alt><C> or <Ctrl><C>.
  2542.  
  2543.           Once invoked, use the <Left> and <Right> arrow keys to move back
  2544.           and forth until the arrow is pointing at the bit you want to
  2545.           toggle.  You can also use the <Home> key to go to the leftmost
  2546.           bit and the <End> key to go the rightmost bit.  Pressing <Space>
  2547.           toggles the bit.  You can toggle the bit on or off as many times
  2548.           as you wish.  You can change as many bits as you wish.  The
  2549.           changes you make here are reflected instantly in each of the
  2550.           other numeric formats.  When you are finished, pressing <Enter>
  2551.           saves your changes, while pressing <Esc> cancels your changes.
  2552.  
  2553.           Change Sign - This is not the same as "Toggle Sign Mode" which
  2554.           changes the overall mode of the Calculator from Signed to
  2555.           Unsigned or from Unsigned to Signed.  The "Change Sign" operation
  2556.           converts the current value from negative to positive, or from
  2557.           positive to negative.    This operation is performed by pressing
  2558.           <Ctrl><Minus>.  You may use either the top row minus key, or the
  2559.           numeric keypad minus key.
  2560.  
  2561.           This is one case where you must use <Ctrl> with <Minus>.  <Alt>
  2562.           and <Shift> will not activate it.  Changing the sign will not
  2563.           function as you expect if you are in Unsigned mode.
  2564.  
  2565.           Clear All - Press <^A>.  This command resets the Calculator and
  2566.           redraws the display.  All values, including those which are saved
  2567.           in memory slots, will be reset to zero.  When you are in
  2568.           Hexadecimal format the <A> key corresponds to the value 0A Hex
  2569.           (10).  Therefore, to execute the Clear All command be sure to use
  2570.           either <Alt><A> or <Ctrl><A>.
  2571.  
  2572.           Clear Entry - Press <E>, <Alt><E>, <Shift><E>, or <Ctrl><E>.
  2573.           This command resets the current value and the pending operation
  2574.           (Add, Subtract, etc.).  If you accidentally enter the wrong value
  2575.           you can delete one digit at a time using <Del> or <BackSpace>.
  2576.           If, however, you accidentally enter the wrong mathematical
  2577.           operation you would use the Clear Entry command.  The Clear Entry
  2578.           command will affect only the current value, not the intermediate
  2579.           value (the top value).  Since <E> and <Shift><E> correspond to a
  2580.           value in hexadecimal be sure to use <Alt><E> or <Ctrl><E> when in
  2581.           the Hexadecimal format.
  2582.  
  2583.           Insert a Value - This command takes a value that was previously
  2584.           saved to one of the Calculator's four memory slots and inserts it
  2585.           into the current value.  You can invoke it in two different ways.
  2586.           Either press <^I>, or, as listed on the Menu, press <^F9>.
  2587.  
  2588.  
  2589.           The Programmer's Calculator                              39 of 95
  2590.  
  2591.  
  2592.                      - Programmer's Productivity Pack Lite 1.00 -
  2593.  
  2594.  
  2595.           Inserted values are always inserted into the current value.
  2596.           Inserting the value does not remove it from the memory slot.  You
  2597.           can insert the same value many times.
  2598.  
  2599.           If more than one memory slot contains a non zero value ProLite
  2600.           will ask you which value to insert.  A pick list will appear with
  2601.           one of the four memory slots highlighted.  The pick list window
  2602.           will always display the values in decimal.  Use the <Up> and
  2603.           <Down> arrow keys to select the proper value and press <Enter>.
  2604.  
  2605.           Park Disk(s) and Blank Screen - To blank the screen and park your
  2606.           hard disk (or disks) simply press <^P>.  This will blank the
  2607.           screen and display a clock.  The clock will move every 60
  2608.           seconds.  When the screen is initially blanked, your hard disk
  2609.           (if present) will also be "parked" on the last cylinder of the
  2610.           drive.  If you have two hard disks, both will be parked.  Parking
  2611.           simply means that the read/write heads will be positioned over
  2612.           the last cylinder.  This will not prevent other programs from
  2613.           "unparking" the disk, but if no other programs are active the
  2614.           disk will remain parked as long as the screen is blanked.  The
  2615.           hard disk parking option may be disabled with PCustom, if
  2616.           desired.  Pressing any key "unblanks" the screen and returns you
  2617.           to the Calculator.
  2618.  
  2619.           Quit the Calculator - To exit from the Calculator simply press
  2620.           <Esc>.  <Esc> will quit the current pop-up, but ProLite will
  2621.           remain in memory ready to be called up again when needed.  If you
  2622.           are using ProLite in stand-alone mode, <Esc> will quit the
  2623.           program and return you to DOS.
  2624.  
  2625.           Quitting the Calculator will not undo any customizing that you
  2626.           have done "on the fly".  Only unloading from memory or turning
  2627.           off the computer will undo your changes.  Customizing done with
  2628.           PCustom is not affected either way since it is written to disk.
  2629.  
  2630.           Save a Value - This is the companion operation to Insert a Value.
  2631.           To save a value to one of the Calculator's four memory slots,
  2632.           press <^S>,  or, as listed on the Menu, <F9>.  The Save function
  2633.           operates very intuitively.  If there is only one value present it
  2634.           will be saved to the first available memory slot.
  2635.  
  2636.           If more than one value is present, a pick list will appear and
  2637.           ProLite will ask you which one to save.  The pick list window
  2638.           will always display the value in decimal.  However, the Saved
  2639.           Values Box always displays the saved values in the current
  2640.           numeric format.  You choose by moving the highlight bar with the
  2641.           <Up> or <Down> arrow key until it highlights the correct value.
  2642.           Press <Enter> and it is saved.  If all the memory slots are
  2643.           filled, a pick list will appear and ProLite will ask you which
  2644.           one to overwrite.  Again, use the arrow keys and <Enter> to
  2645.           select.
  2646.  
  2647.  
  2648.           The Programmer's Calculator                              40 of 95
  2649.  
  2650.  
  2651.                      - Programmer's Productivity Pack Lite 1.00 -
  2652.  
  2653.  
  2654.           A value that is saved to memory stays in that memory slot even if
  2655.           it is inserted into the current value.  This lets you use that
  2656.           same value repeatedly.  Pressing <^A> clears all values in the
  2657.           Calculator, including those saved in the memory slots.
  2658.  
  2659.           Screen Refresh - <^R> will redraw the screen.  The Screen Refresh
  2660.           command will not change any values.  It will simply redraw the
  2661.           Calculator display should the need ever arise.
  2662.  
  2663.           Toggle Sign Mode - To toggle between Signed and Unsigned modes
  2664.           press <^T>.  This will change the way the values are treated
  2665.           during calculations and display.  Signed values may be negative
  2666.           or positive, whereas Unsigned values may only be positive.  See
  2667.           "The Range Of Values Available" (page 34) if you want to know how
  2668.           this affects numeric ranges.
  2669.  
  2670.           Unload from Memory - To unload ProLite from memory press
  2671.           <Alt><U>, <Alt><U> (<Alt><U> twice in a row).  You may also use
  2672.           <Ctrl><U>, <Ctrl><U>.  ProLite will first check to see if it is
  2673.           safe to unload.  If it is in fact safe it will give you a chance
  2674.           to press <Esc> to return to the Calculator, or any other key to
  2675.           actually unload ProLite from memory.  This is different than
  2676.           quitting the Calculator using <Esc>.  Pressing <Esc> returns you
  2677.           to DOS, or to whatever program you were in when you invoked
  2678.           ProLite, but it leaves ProLite in memory, ready to be called
  2679.           again.  If you unload ProLite from memory you would have to load
  2680.           ProLite again before using it.
  2681.  
  2682.           When ProLite is run in stand-alone (multitasking) mode, the
  2683.           unload command functions exactly like pressing <Esc>, it returns
  2684.           you to DOS.
  2685.  
  2686.           The Mathematical Operations:
  2687.           ----------------------------
  2688.  
  2689.           All mathematical operations are carried out by entering a value,
  2690.           pressing the key corresponding to an operation, entering another
  2691.           value, and pressing <Enter> or <=> to request a final result.  A
  2692.           whole series of calculations can be performed before requesting a
  2693.           final result.
  2694.  
  2695.           In The Programmer's Calculator, the top value in the display is
  2696.           called the "Intermediate Value", the middle value (where the
  2697.           cursor is positioned) is the "Current Value", and the lower value
  2698.           is the "Final Result".  Regardless of which numeric format you
  2699.           are using, values are always entered into the Current Value (the
  2700.           middle number).
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.           The Programmer's Calculator                              41 of 95
  2708.  
  2709.  
  2710.                      - Programmer's Productivity Pack Lite 1.00 -
  2711.  
  2712.  
  2713.               |---------------------
  2714.               |      Decimal      |
  2715.               |                 5 | <-- Intermediate Value
  2716.               |ADD              5 | <-- Current Value
  2717.               |     ------------- |
  2718.               |                10 | <-- Final Result
  2719.               |---------------------
  2720.                             Figure 3: Decimal Box Display
  2721.  
  2722.           If you do a series of calculations without requesting a final
  2723.           result, the Calculator performs the operation and updates the
  2724.           value in the Intermediate Value slot.  That way you can see where
  2725.           your calculations have brought you so far, the current value
  2726.           entered, and the mathematical function to be performed.  Also, a
  2727.           final result is not erased until you request another final result
  2728.           or Clear All (^A).  This keeps the result of a prior computation
  2729.           available without having to store it to a memory slot.
  2730.  
  2731.           By the way, it does not matter whether or not NumLock is set.
  2732.           The numeric keypad can be used with or without NumLock set.
  2733.           Since ProLite modifies the BIOS keyboard interrupts it is able to
  2734.           detect all the numeric keypad keys (including the center or 5
  2735.           key) regardless of the status of NumLock.
  2736.  
  2737.           All of the available mathematical operations are explained in
  2738.           detail below.
  2739.  
  2740.           Add - Addition is chosen by pressing <+> (Plus).  You may use the
  2741.           top row <Plus> key or the numeric keypad <Plus> key.
  2742.  
  2743.           Subtract - Subtraction is chosen by pressing <-> (Minus).  You
  2744.           may use the top row <Minus> key or the numeric keypad <Minus>
  2745.           key.
  2746.  
  2747.           Multiply - Multiplication is chosen by pressing the <*> key.  The
  2748.           asterisk key can be either the top row asterisk or the asterisk
  2749.           that shares the <PrtSc> key.  On 101/102 key enhanced keyboards
  2750.           there is a separate numeric keypad asterisk which can also be
  2751.           used.
  2752.  
  2753.           Divide - Integer division is performed using the </> (Slash) or
  2754.           <\> (Backslash) key.  This is integer division, which means that
  2755.           there are no fractional answers or decimal points.  It does not
  2756.           give a remainder, either.  To obtain the remainder you would need
  2757.           to use Modulus.  Also, since Division (DIV) is the logical
  2758.           counterpart to Modulus (MOD), which uses the <F4> key, Division
  2759.           may also be performed by using <^F4>.
  2760.  
  2761.           Modulus (Remainder) - Modulus (MOD) is chosen by pressing <F4>.
  2762.           Modulus returns the remainder of a division operation.  Modulus
  2763.           works by dividing the intermediate (top) value by the current
  2764.  
  2765.  
  2766.           The Programmer's Calculator                              42 of 95
  2767.  
  2768.  
  2769.                      - Programmer's Productivity Pack Lite 1.00 -
  2770.  
  2771.  
  2772.           (middle) value, and returning the remainder of the division (or
  2773.           zero if it divided evenly).
  2774.  
  2775.           Show Result - Obtaining a result is done by pressing either the
  2776.           <Enter> or the <=> (Equals) key.  This displays the final result
  2777.           of the calculation.  If no calculation was entered, that is, if
  2778.           the only value present is the current value, the result will
  2779.           equal the current value.
  2780.  
  2781.           The final result will remain displayed until another final result
  2782.           is requested.  This is very handy when you need to refer to the
  2783.           value later, but don't want to save it to a memory slot.
  2784.  
  2785.           Another thing that happens when a final result is requested is
  2786.           that the current and intermediate values are automatically reset
  2787.           to zero internally.  However, the screen will still display the
  2788.           old values until any other key is pressed.  The reason for this
  2789.           is that The Programmer's Calculator does its best to display as
  2790.           much useful information as possible for as long as possible.
  2791.  
  2792.           Delete Digit - Use the <BackSpace> or <Del> keys to delete one
  2793.           digit at a time from the current value.  If you need to change
  2794.           too many digits in the current value, or if what you need to
  2795.           change is the mathematical operation, use Clear Entry (^E)
  2796.           instead.
  2797.  
  2798.           Logical and Bit Manipulation Operations:
  2799.           ----------------------------------------
  2800.  
  2801.           If you are new to low level bit manipulation instructions such as
  2802.           AND, OR, XOR, NOT, etc., then please refer to Appendix A (page
  2803.           80) which explains each operation in detail.
  2804.  
  2805.           AND - AND is selected by pressing the <F1> key.  AND performs a
  2806.           logical AND on two values.  It uses the intermediate value (top
  2807.           value) and the current value (middle value).  It will return a
  2808.           value of 1 whenever both values have a 1 in the same bit
  2809.           position.
  2810.  
  2811.           NOT - NOT is selected by pressing <^F1>.  NOT performs a logical
  2812.           NOT operation on the current value.  NOT is the same as
  2813.           performing a "one's complement".  It complements each bit in a
  2814.           value by converting all 1's to 0's and all 0's to 1's.  The best
  2815.           way to see this is to watch the Binary Box as you perform the
  2816.           operation.
  2817.  
  2818.           OR - OR is chosen by pressing <F2>.  OR performs a logical OR
  2819.           operation, ORing the intermediate value with the current value.
  2820.           It will return a value of 1 wherever either or both of the values
  2821.           have a 1 in that bit position.
  2822.  
  2823.  
  2824.  
  2825.           The Programmer's Calculator                              43 of 95
  2826.  
  2827.  
  2828.                      - Programmer's Productivity Pack Lite 1.00 -
  2829.  
  2830.  
  2831.           XOR - XOR is selected by pressing <^F2>.  XOR performs a logical
  2832.           eXclusive OR operation, XORing the intermediate value with the
  2833.           current value.  It will return a value of 1 wherever either, but
  2834.           not both, values have a 1 in that bit position.
  2835.  
  2836.           Shift Left - Shift Left (SHL) is selected by pressing <F3>.
  2837.           Shift Left affects only the current value by shifting it left one
  2838.           bit position each time <F3> is pressed.  This has the same effect
  2839.           as multiplying by 2.
  2840.  
  2841.           Shift Right - Shift Right (SHR) is chosen by pressing <^F3>.
  2842.           Shift Right affects only the current value by shifting it right
  2843.           one bit position each time the command is invoked.  This has the
  2844.           same effect as dividing by 2.
  2845.  
  2846.           Rotate Left - Rotate Left (ROL) is chosen by pressing <F5>.
  2847.           Rotate Left affects only the current value.  Rotate Left
  2848.           "rotates" the value left by one bit position each time <F4> is
  2849.           pressed.  In rotation the bit that "falls off" one end of the
  2850.           value is inserted into the other end.  This can be more clearly
  2851.           visualized by watching the Binary Box as the operation is
  2852.           performed.
  2853.  
  2854.           Rotate Right - Rotate Right (ROR) is chosen by pressing <^F5>.
  2855.           Like Rotate Left, Rotate Right affects only the current value.
  2856.           The value will be rotated to the right by one bit position each
  2857.           time the Rotate Right command is invoked.  The bit that "falls
  2858.           off" the right end is reinserted on the left side.
  2859.  
  2860.           Rotate through the Carry Left - Rotate through the Carry Left
  2861.           (RCL) is chosen by pressing <F6>.  RCL affects only the current
  2862.           value.  The RCL operation is similar to the ROL (Rotate Left)
  2863.           operation in that it "rotates" the value by a certain number of
  2864.           bit positions.  The difference between RCL and ROL lies in the
  2865.           fact that with RCL the bit that "falls off" one end of a value is
  2866.           inserted into the carry flag and on the next rotate the bit that
  2867.           is stored in the carry flag is rotated into the other end of the
  2868.           value.  This can be more clearly seen by watching the Binary Box
  2869.           as this operation is executed.
  2870.  
  2871.           Unlike the other shift and rotate operations that move the value
  2872.           by one bit position each time they are invoked, RCL asks you how
  2873.           many bit positions to rotate the value.  This is because the
  2874.           value of the carry flag must be preserved between each rotation.
  2875.  
  2876.           If this is difficult to visualize, Appendix A (page 80) provides
  2877.           a detailed explanation, complete with a diagram.
  2878.  
  2879.           Rotate through the Carry Right - Rotate through the Carry Right
  2880.           (RCR) is chosen by pressing <^F6>.  RCR functions exactly like
  2881.           RCL except that the value is rotated right instead of left.
  2882.  
  2883.  
  2884.           The Programmer's Calculator                              44 of 95
  2885.  
  2886.  
  2887.                      - Programmer's Productivity Pack Lite 1.00 -
  2888.  
  2889.  
  2890.           Shift Arithmetic Left - Shift Arithmetic Left (SAL) is chosen by
  2891.           pressing the <F7> key.  Shift Arithmetic Left (SAL) is especially
  2892.           useful when using Binary Coded Decimal (BCD) values at the
  2893.           assembly language level.  SAL is very similar to the more
  2894.           commonly used Shift Left (SHL) instruction.  The major difference
  2895.           between the two lies in the fact that SAL preserves the sign of
  2896.           the value throughout the shift operation.  You could think of the
  2897.           high bit as being shifted into itself.  The best way to see this
  2898.           in action is to watch the Binary Box as you execute the
  2899.           instruction.
  2900.  
  2901.           Shift Arithmetic Right - Shift Arithmetic Right (SAR) is chosen
  2902.           by pressing <^F7>.  SAR shifts the current value right one bit
  2903.           position each time it is invoked, but the value of the high bit
  2904.           (the sign bit) is preserved.
  2905.  
  2906.           Exchange Words - Exchange words (XCHG DW) is activated by
  2907.           pressing <F8>.  Exchange words affects only the current value.
  2908.           This operation swaps the two low order words in the current
  2909.           value.
  2910.  
  2911.           Exchange Double Words - Exchange Double Words (XCHG DD) is chosen
  2912.           by pressing <^F8>.  Exchange Double Words affects the current
  2913.           value by swapping the low and high order double words.  The best
  2914.           way to visualize this operation is to watch either the Binary or
  2915.           Hexadecimal Box as you execute the instruction.
  2916.  
  2917.           Moving The Calculator's Display:
  2918.           --------------------------------
  2919.  
  2920.           The Programmer's Calculator is designed to let you see as much of
  2921.           the screen you were working on as possible.  However, the
  2922.           Calculator may cover up exactly what you most need to see.  To
  2923.           move the Calculator's display, use the following commands:
  2924.  
  2925.           Move Up - <Alt><Up>
  2926.  
  2927.           Move Down - <Alt><Down>
  2928.  
  2929.           Move to Top - <Alt><PgUp> or <Alt><Home>
  2930.  
  2931.           Move to Bottom - <Alt><PgDn> or <Alt><End>
  2932.  
  2933.           Going To The Attachments:
  2934.           -------------------------
  2935.  
  2936.           Attachments are tools in the Programmer's Productivity Pack Lite
  2937.           that are accessed through other tools.  There are two attachments
  2938.           to The Programmer's Calculator.  In other words, they are reached
  2939.           from the Calculator.  These are two commands we have not looked
  2940.           at yet.
  2941.  
  2942.  
  2943.           The Programmer's Calculator                              45 of 95
  2944.  
  2945.  
  2946.                      - Programmer's Productivity Pack Lite 1.00 -
  2947.  
  2948.  
  2949.           The Keystroke Reference Center - <F10> is marked "KeyRef".  This
  2950.           is the command that invokes The Keystroke Reference Center.  This
  2951.           attachment shows you the BIOS Keyboard Status Bytes, and a wealth
  2952.           of other information.  Rather than explain it here, we suggest
  2953.           that you go on to The Quick Start Tutorial (page 52) and The In-
  2954.           Depth Reference Guide (page 55) for The Keystroke Reference
  2955.           Center.
  2956.  
  2957.           There is one point that should be covered here that pertains to
  2958.           both attachments.  Once you have moved to the attachment, you
  2959.           must to use <Alt><Esc> to return to The Programmer's Calculator.
  2960.           If you use <Esc> you will return to the DOS prompt, or wherever
  2961.           you were when you popped up ProLite.  This is not a bug, it's
  2962.           meant to save you time.  Now, whenever you press the Hot Key for
  2963.           the Calculator you will go directly to the attachment.  ProLite
  2964.           figures that if that's where you were last, that's probably where
  2965.           you want to be now.
  2966.  
  2967.           The ASCII and Color Attribute Chart - <^F10> (Either <Shift>,
  2968.           <Alt>, or <Ctrl> with <F10>) is marked ASCII.  This is the
  2969.           command that invokes The ASCII and Color Attribute Chart.  This
  2970.           is the subject of the next Quick Start Tutorial.
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.           The Programmer's Calculator                              46 of 95
  3003.  
  3004.  
  3005.                      - Programmer's Productivity Pack Lite 1.00 -
  3006.  
  3007.  
  3008.                         -------------------------------------
  3009.                          The ASCII and Color Attribute Chart
  3010.                         -------------------------------------
  3011.  
  3012.  
  3013.           The Quick Start Tutorial
  3014.           =========================
  3015.  
  3016.           Load ProLite into memory and press the Hot Key (<Alt><LeftShift>)
  3017.           for The Programmer's Calculator.  When the Calculator display
  3018.           pops up, press <M> to bring up the Menu.  The command <^F10> is
  3019.           marked ASCII.:
  3020.  
  3021.           Pressing <^F10> closes the Calculator and opens The ASCII and
  3022.           Color Attribute Chart attachment.
  3023.  
  3024.           There is a lot more to this chart than can fit on one screen,
  3025.           regardless of the monitor you have.  That is why the most
  3026.           important commands for you to learn are the ones that move you
  3027.           around the chart.
  3028.  
  3029.              To scroll up one line at a time press <Up> Arrow.
  3030.  
  3031.              To scroll down one line at a time press <Down> Arrow.
  3032.  
  3033.              To scroll up a screenful at a time press <PgUp>.
  3034.  
  3035.              To scroll down a screenful at a time press <PgDn>.
  3036.  
  3037.              To go directly to the beginning of the chart press <Home> or
  3038.              <Ctrl><PgUp>.
  3039.  
  3040.              To go directly to the end of the chart press <End> or
  3041.              <Ctrl><PgDn>.
  3042.  
  3043.              To go directly to the middle of the chart press <5> on the
  3044.              numeric keypad.
  3045.  
  3046.           Why not take a little time and just explore your new reference
  3047.           chart?
  3048.  
  3049.           The information on the chart is self-explanatory, but, in case
  3050.           something isn't clear it is all explained in the In-Depth
  3051.           Reference Guide that follows this tutorial (page 49).
  3052.  
  3053.           If you need to leave your computer for a while and want to blank
  3054.           the screen and park the hard disk (or disks), just press <^P>.
  3055.           The screen will blank and display a clock.  Your hard disk (or
  3056.           disks) are now parked over the last cylinder.  Any key restores
  3057.           the display when you return.
  3058.  
  3059.  
  3060.  
  3061.           ASCII and Color Attribute Chart                          47 of 95
  3062.  
  3063.  
  3064.                      - Programmer's Productivity Pack Lite 1.00 -
  3065.  
  3066.  
  3067.           Press <Esc>.  You have left The ASCII Chart and are back at the
  3068.           DOS prompt, or wherever you were when you popped up The
  3069.           Programmer's Calculator.  Now press <LeftShift><Ctrl> (the hot
  3070.           key).  Instead of going to the Calculator you have come back to
  3071.           The ASCII Chart!  The Hot Key will always return you to the tool
  3072.           or attachment from which you quit or <Esc>aped.
  3073.  
  3074.           Now that you are back in The ASCII and Color Attribute Chart
  3075.           press <Alt><Esc>.  This returns you to the Calculator.  If you
  3076.           quit the Calculator now with <Esc> and then press the Hot Key,
  3077.           you will go to the Calculator and not the chart.
  3078.  
  3079.           Return to The ASCII Chart now by pressing <^F10>.  You cannot
  3080.           unload ProLite from memory from an attachment.  Try pressing
  3081.           <^U><^U>.  All you get are little beeps.  You need to return to
  3082.           the Calculator or to the DOS prompt to unload ProLite from
  3083.           memory.
  3084.  
  3085.           That is all for this Quick Start Tutorial.  For more insight into
  3086.           all of the information that The ASCII and Color Attribute Chart
  3087.           puts at your disposal read The In-Depth Reference Guide that
  3088.           follows.
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.           ASCII and Color Attribute Chart                          48 of 95
  3121.  
  3122.  
  3123.                      - Programmer's Productivity Pack Lite 1.00 -
  3124.  
  3125.  
  3126.                         -------------------------------------
  3127.                          The ASCII and Color Attribute Chart
  3128.                         -------------------------------------
  3129.  
  3130.  
  3131.           The In-Depth Reference Guide:
  3132.           =============================
  3133.  
  3134.           The ASCII and Color Attribute Chart is an attachment to The
  3135.           Programmer's Calculator.  The ASCII Chart is called an
  3136.           "attachment" because it is attached to the Calculator, and is
  3137.           accessed through the Calculator.
  3138.  
  3139.           You access The ASCII Chart from the Calculator by pressing
  3140.           <^F10>.  That closes the Calculator and opens The ASCII Chart.
  3141.  
  3142.           25, 43, And 50 Line Screens:
  3143.           ----------------------------
  3144.  
  3145.           The ASCII Chart is designed to work with any of the common text
  3146.           modes in use today.  Most systems operate with 25 lines of text
  3147.           visible on the screen at a time.  ProLite will use all 25 lines
  3148.           to show you as much of The ASCII Chart as possible.
  3149.  
  3150.           If you have EGA and are in 43 line mode (43 lines of text visible
  3151.           on screen at a time), The ASCII Chart will use all 43 lines to
  3152.           show you as much information as possible.
  3153.  
  3154.           If you have VGA and are in 50 line mode (50 lines of text visible
  3155.           on the screen), The ASCII Chart will appear on all 50 lines.
  3156.  
  3157.           The Columns On The Chart:
  3158.           -------------------------
  3159.  
  3160.                (Due to space limitations and printer incompatibilities,
  3161.                 this figure appears only in the complete Programmer's
  3162.                       Productivity Pack printed User's Guide.)
  3163.  
  3164.                             Figure 4: ASCII Chart Display
  3165.  
  3166.           On the left hand side of the Chart there are several columns.
  3167.           The first two columns give you the decimal and hexadecimal values
  3168.           for each character.  The third column displays the character that
  3169.           the ASCII code represents.  The fourth column is made up of three
  3170.           asterisks in the actual color that those values represent.  The
  3171.           colors are only visible on color monitors, obviously.  The
  3172.           asterisks will be in whatever brightness or other quality that
  3173.           value represents to the type of monitor that you have.  The next
  3174.           three columns describe the foreground color, the background
  3175.           color, and the attribute as it would appear on a monochrome
  3176.           display.
  3177.  
  3178.  
  3179.           ASCII and Color Attribute Chart                          49 of 95
  3180.  
  3181.  
  3182.                      - Programmer's Productivity Pack Lite 1.00 -
  3183.  
  3184.  
  3185.           The Extended Characters:
  3186.           ------------------------
  3187.  
  3188.           On the right hand side of the Chart there is an enlarged
  3189.           representation of all the graphics and box drawing characters.
  3190.           These are much easier to see than the dinky little characters
  3191.           that are actually represented by each code.
  3192.  
  3193.           If you are at the beginning of the Chart (ASCII code 00), the
  3194.           field at the right will display all the single line box
  3195.           characters and their codes.  Moving towards the end of the Chart
  3196.           (ascending ASCII values), the field at the right will display all
  3197.           the double line boxes and their codes.  On a 25 line monitor you
  3198.           can go from one field to the next by simply using <PgDn>.  The
  3199.           third field shows all double horizontal and single vertical boxes
  3200.           and their codes.  The fourth field shows all the single
  3201.           horizontal and double vertical boxes and their codes.  The next
  3202.           field shows the graph and block characters and their codes.  The
  3203.           next two fields display the common math symbols and their codes.
  3204.           The remaining fields show all the control codes.
  3205.  
  3206.           Moving Around The Chart:
  3207.           ------------------------
  3208.  
  3209.           The following commands will move you around the chart whether
  3210.           NumLock is set or not.  It makes no difference.  You can easily
  3211.           scroll or page through The ASCII Chart to find the information
  3212.           you need.
  3213.  
  3214.           Scroll Up - To scroll up one line press the <Up> arrow key.
  3215.  
  3216.           Scroll Down - To scroll down one line press the <Down> arrow key.
  3217.  
  3218.           Page Up - To scroll up one page or screenful at a time press
  3219.           <PgUp>.
  3220.  
  3221.           Page Down - To scroll down one page or screenful at a time press
  3222.           <PgDn>.
  3223.  
  3224.           Go to Beginning - To move instantly to the beginning of the Chart
  3225.           (ASCII code 00) press <Home> or <Ctrl><PgUp>.
  3226.  
  3227.           Go To Center - To move instantly to the center of the Chart
  3228.           (ASCII code 127) press the numeric keypad <5> key (the center
  3229.           key).
  3230.  
  3231.           Go to End - To move instantly to the end of the Chart (ASCII code
  3232.           255) press <END> or <Ctrl><PgDn>.
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.           ASCII and Color Attribute Chart                          50 of 95
  3239.  
  3240.  
  3241.                      - Programmer's Productivity Pack Lite 1.00 -
  3242.  
  3243.  
  3244.           Other Available Commands:
  3245.           -------------------------
  3246.  
  3247.           Park Disk(s) and Blank Screen - As in the Calculator, if you need
  3248.           to park your hard disk(s) and blank your screen while you go off
  3249.           to do something else, simply press <^P>.  Any key will restore
  3250.           your screen when you return.
  3251.  
  3252.           Exiting ProLite from The ASCII Chart - To exit from The ASCII
  3253.           Chart and return to DOS, or to the program you were in when you
  3254.           popped ProLite up, simply press <Esc>.  <Esc> always exits the
  3255.           pop-up, saving your place for when you return.
  3256.  
  3257.           Because The ASCII Chart is an "attachment" to the Calculator,
  3258.           pressing the same Hot Key that normally activates the Calculator
  3259.           will now instead pop up The ASCII Chart.  This saves you the
  3260.           trouble of going through the Calculator itself to get back to The
  3261.           ASCII Chart when it is the attachment that you were last using.
  3262.  
  3263.           Returning to the Calculator:
  3264.           ----------------------------
  3265.  
  3266.           To return to the Calculator from The ASCII Chart, press
  3267.           <Alt><Esc> instead of <Esc>.
  3268.  
  3269.           That completes the In-Depth Reference Guide for The ASCII and
  3270.           Color Attribute Chart.  As you have seen, it is a lot more useful
  3271.           than most of the pop up ASCII charts you have used in the past.
  3272.  
  3273.           You now have one more tool to help you save time while working
  3274.           with source code or other text files.  Not bad for a few minutes
  3275.           of reading!
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.           ASCII and Color Attribute Chart                          51 of 95
  3298.  
  3299.  
  3300.                      - Programmer's Productivity Pack Lite 1.00 -
  3301.  
  3302.  
  3303.                            --------------------------------
  3304.                             The Keystroke Reference Center
  3305.                            --------------------------------
  3306.  
  3307.  
  3308.           The Quick Start Tutorial:
  3309.           =========================
  3310.  
  3311.           We were rather surprised to find that this quickly became the
  3312.           favorite attachment for the people who tested the full-blown
  3313.           Programmer's Productivity Pack before it was placed on the
  3314.           market.  You are about to see why!
  3315.  
  3316.           This Quick Start Tutorial is designed to familiarize you with The
  3317.           Keystroke Reference Center in 15 minutes or less.  You'll enjoy
  3318.           this utility!
  3319.  
  3320.           First, be sure that ProLite is loaded into memory.  Type
  3321.           "ProLite" <Enter> at the DOS prompt.  Next, pop up the Calculator
  3322.           using <Alt><LeftShift>.  When the Calculator's display appears,
  3323.           press <M> to bring up the Menu.  On the Menu you will see that
  3324.           command <F10> is marked "KeyRef" .  This attachment is called The
  3325.           Keystroke Reference Center.  Press <F10> to pop up The Keystroke
  3326.           Reference Center, and say goodbye to all your charts and lists of
  3327.           scan codes and INKEY() values!
  3328.  
  3329.           Take a while to look over the display on your screen.  At the top
  3330.           it says Keystroke Reference Center, so you know you're in the
  3331.           right place.  Below it are three boxes.  The highlighted box on
  3332.           the left gives you the dBASE INKEY() value.  The highlighted one
  3333.           on the right gives you a BIOS scan code.  The center box tells
  3334.           you the version of ProLite you are using, the date, and the time.
  3335.  
  3336.           Below that it says "Press a key or key combination:".  Okay,
  3337.           press the <Space> bar.
  3338.  
  3339.           Presto!  You instantly have the scan code returned by the BIOS
  3340.           (used in most programming languages) in the right hand box, and
  3341.           the INKEY() value returned by the dBASE dialects (including dBASE
  3342.           III Plus, Clipper, Foxbase, QuickSilver, and presumably dBASE IV
  3343.           as well) in the left hand box.
  3344.  
  3345.           Now press <A>.  Now <Shift><A>.  Press <3> on the top line.
  3346.           Press <F7>.  The information on each of those keystrokes appears
  3347.           instantly.
  3348.  
  3349.           Now press <F1>.  A "Portability Note" has opened which gives you
  3350.           some important information about the dBASE INKEY() value for this
  3351.           keystroke.
  3352.  
  3353.  
  3354.  
  3355.  
  3356.           The Keystroke Reference Center                           52 of 95
  3357.  
  3358.  
  3359.                      - Programmer's Productivity Pack Lite 1.00 -
  3360.  
  3361.  
  3362.           Now press <Alt><Up> Arrow.  This time you get a different
  3363.           Portability Note.  Now try pressing <Alt><BackSpace>.  Another
  3364.           Portability Note appears.  As you can see, just about all the
  3365.           information you will ever need about keyboard return codes is now
  3366.           available at the touch of a key!
  3367.  
  3368.           With NumLock off, press <5> on your numeric keypad.  More
  3369.           information!
  3370.  
  3371.           You will probably want to press every key and key combination on
  3372.           the board just to see how much information is available, but, we
  3373.           need to move on right now.
  3374.  
  3375.           Below where you have been entering the keystrokes there is a live
  3376.           (real time) display of the values in the BIOS keyboard status
  3377.           bytes in low memory.  Watch them as you press <Alt>, <Ctrl>, the
  3378.           <LeftShift> and <RightShift> keys, <ScrollLock>, <NumLock> or
  3379.           whatever.  As you can see, the screen is instantly updated to
  3380.           show you any changes in the bit settings in the BIOS keyboard
  3381.           status bytes.
  3382.  
  3383.           As with the Calculator, The Keystroke Reference Center can be
  3384.           moved around the screen.  Since it uses 25 lines on the screen,
  3385.           you will only be able to move it up and down if you have EGA 43
  3386.           line mode, or VGA 50 line mode.
  3387.  
  3388.           Press <Alt><Left> Arrow.  The display moves one space to the
  3389.           left.  You also get the information on the key combination you
  3390.           just pressed, complete with a Portability Note.  Press <Space>
  3391.           and the Portability Note disappears.  Now press <Alt><Right>
  3392.           Arrow.  The display goes back to the right one line.  You get all
  3393.           the information on this keystroke, too.
  3394.  
  3395.           Press <Alt><Home>.  Clear the Portability Note (press <Space> for
  3396.           instance) and press <Alt><End>.  This takes you right across the
  3397.           screen.
  3398.  
  3399.           If you have 43 or 50 lines available on your screen, you can move
  3400.           the display up and down, also.  Press <Alt><Up> Arrow and
  3401.           <Alt><Down> Arrow to move a line at a time, and <Alt><PgUp> and
  3402.           <Alt><PgDn> to move the height of the whole screen.
  3403.  
  3404.           To return to DOS, or to the program you were in before you
  3405.           activated ProLite, press <Esc>.  Try it.  Notice that it pauses
  3406.           to show you the return codes for the <Esc> key.  Pressing any key
  3407.           returns you to DOS.
  3408.  
  3409.           Now, press <Alt><LeftShift> to again pop up ProLite.  There you
  3410.           are, right back where you left off.  To return to the Calculator
  3411.           from The Keystroke Reference Center, simply press <Alt><Esc>
  3412.           instead of <Esc>.  Again, it will pause to show you the return
  3413.  
  3414.  
  3415.           The Keystroke Reference Center                           53 of 95
  3416.  
  3417.  
  3418.                      - Programmer's Productivity Pack Lite 1.00 -
  3419.  
  3420.  
  3421.           codes for the <Alt><Esc> key combination.  Pressing any key will
  3422.           return you to the Calculator.
  3423.  
  3424.           That was pretty easy.  You have just completed the Quick Start
  3425.           Tutorial for ProLite's interactive Keystroke Reference Center.
  3426.           And you have also added another tool to your productivity
  3427.           toolbox.
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.           The Keystroke Reference Center                           54 of 95
  3475.  
  3476.  
  3477.                      - Programmer's Productivity Pack Lite 1.00 -
  3478.  
  3479.  
  3480.                            --------------------------------
  3481.                             The Keystroke Reference Center
  3482.                            --------------------------------
  3483.  
  3484.  
  3485.           The In-Depth Reference Guide:
  3486.           =============================
  3487.  
  3488.           The Keystroke Reference Center is an elegant solution to a simple
  3489.           yet common problem.
  3490.  
  3491.           In virtually every program you write you'll find the need to
  3492.           identify a keystroke in order to determine what action to execute
  3493.           next.  In most cases this keystroke will be identified by way of
  3494.           all or part of the "Scan Code" returned by the system's ROM BIOS.
  3495.           Other specialized application development tools or languages such
  3496.           as dBASE and its various counterparts (Clipper, FoxBase,
  3497.           QuickSilver, and others), return a key code that is different
  3498.           than the one normally returned by the ROM BIOS.
  3499.  
  3500.           To further complicate matters, not all keyboards are the same.
  3501.           There are the older 83 key PC/XT keyboards, the newer 84 key
  3502.           PC/AT style keyboards, the 101/102 key "enhanced" keyboards, and
  3503.           then the compact keyboards found on many laptop computers (many
  3504.           of which are configured to act like an enhanced keyboard by
  3505.           having the same key return different values according to various
  3506.           conditions).
  3507.  
  3508.           What all this means is that most of us keep reference charts from
  3509.           books or technical manuals close at hand while programming.  We
  3510.           then refer to these books when we need to know what value is
  3511.           returned from a specific key.  Of course these books or charts
  3512.           usually do not list all of the possible key combinations.  So we
  3513.           often end up writing a separate little utility to display the
  3514.           return value from each key pressed, which we then use whenever we
  3515.           need to find out the value of a particular key or key
  3516.           combination.
  3517.  
  3518.           Needless to say, neither of these methods is an ideal solution.
  3519.           ProLite's interactive Keystroke Reference Center provides the
  3520.           solution to this common problem!
  3521.  
  3522.           First, because ProLite is memory-resident it is always available
  3523.           at the touch of a key.  Second, because we don't always use the
  3524.           same languages and tools when developing applications, ProLite's
  3525.           interactive Keystroke Reference Center provides the information
  3526.           needed for the most common keystroke return values, the BIOS scan
  3527.           codes and the dBASE INKEY() return codes, simultaneously.  Third,
  3528.           to take the solution a step further, The Keystroke Reference
  3529.           Center displays a "Portability Note" whenever a key or key
  3530.           combination requiring additional information, is pressed.
  3531.  
  3532.  
  3533.           The Keystroke Reference Center                           55 of 95
  3534.  
  3535.  
  3536.                      - Programmer's Productivity Pack Lite 1.00 -
  3537.  
  3538.  
  3539.           To round out The Keystroke Reference Center, a live (real time)
  3540.           display of each individual bit in the two BIOS keyboard status
  3541.           bytes is displayed in the lower half of the screen.
  3542.  
  3543.           Another piece of information that may be of interest to many of
  3544.           you is that ProLite modifies the normal keyboard interrupts (Int
  3545.           09h and 16h) in order to identify and use more keystrokes than
  3546.           are normally available through the BIOS services alone.  Of
  3547.           course, if you press one of these special key combinations a
  3548.           Portability Note will let you know about it.
  3549.  
  3550.           Using The Keystroke Reference Center is as simple as it could
  3551.           possibly be.  Instead of paging through a long chart, simply
  3552.           press the key or key combination that you are interested in, and
  3553.           you'll instantly have all the necessary information.
  3554.  
  3555.           How To Access The Keystroke Reference Center:
  3556.           ---------------------------------------------
  3557.  
  3558.           The Keystroke Reference Center is an attachment to The
  3559.           Programmer's Calculator.  This means that it is attached to and
  3560.           accessed through the Calculator.
  3561.  
  3562.           You access The Keystroke Reference Center from the Calculator by
  3563.           pressing <F10>.  That closes the Calculator and opens this
  3564.           attachment.
  3565.  
  3566.           The Display:
  3567.           ------------
  3568.  
  3569.           The Keystroke Reference Center display provides you with a great
  3570.           deal of information.
  3571.  
  3572.           The highlighted box at the top left gives the dBASE INKEY() value
  3573.           for any keystroke.  The highlighted box at the top right gives
  3574.           the BIOS scan code for any keystroke.  These will be set to the
  3575.           values of <F10> when you first access The Keystroke Reference
  3576.           Center because that is the key you used to access it.
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.           The Keystroke Reference Center                           56 of 95
  3593.  
  3594.  
  3595.                      - Programmer's Productivity Pack Lite 1.00 -
  3596.  
  3597.  
  3598.                 |-----------------------------------------------------|
  3599.                 |             Keystroke Reference Center              |
  3600.                 |-----------------------------------------------------|
  3601.                 |  dBASE Key Code:  |   ProLite   |  BIOS Scan Code:  |
  3602.                 | 11111111 11110111 | Version 2.6 | 01000100 00000000 |
  3603.                 | Hex          FFF7 |  30-NOV-90  | Hex          4400 |
  3604.                 | Dec            -9 | 01:00:00 am | Dec        17,408 |
  3605.                 |-----------------------------------------------------|
  3606.                 |       Press a key or key combination:  <F10>        |
  3607.                 |-----------------------------------------------------|
  3608.                 |             BIOS Keyboard Status Bytes:             |
  3609.                 |    Byte at 0040:0017H    |    Byte at 0040:0018H    |
  3610.                 | -------------------------+------------------------- |
  3611.                 |  1 1 0 0 0 0 0 0         |  0 0 0 0 0 0 0 0         |
  3612.                 |  | | | | | | | Rt Shift  |  | | | | | | | Left Ctrl |
  3613.                 |  | | | | | | Left Shift  |  | | | | | | Left Alt    |
  3614.                 |  | | | | | Ctrl Pressed  |  | | | | | Sys Req Press |
  3615.                 |  | | | | Alt Pressed     |  | | | | Hold State      |
  3616.                 |  | | | Scroll Lock       |  | | | Scroll Lock Press |
  3617.                 |  | | Num Lock State      |  | | Num Lock Pressed    |
  3618.                 |  | Caps Lock State       |  | Caps Lock Pressed     |
  3619.                 |  Insert State            |  Insert Pressed          |
  3620.                 |-----------------------------------------------------|
  3621.                 |   Press <Alt-Escape> to return to the Calculator.   |
  3622.                 |-----------------------------------------------------┘
  3623.                     Figure 5: Keystroke Reference Center Display
  3624.  
  3625.           The box between the two highlighted boxes tells you what version
  3626.           of ProLite you are using, the date, and the time.
  3627.  
  3628.           The lower half of the display gives you a live (real time)
  3629.           display of the values in the BIOS keyboard status bytes in low
  3630.           memory.
  3631.  
  3632.           Scan Codes and INKEY() Values:
  3633.           ------------------------------
  3634.  
  3635.           When you press a key or key combination on your keyboard, the
  3636.           software you are using must have some means of identifying or
  3637.           recognizing the key you pressed.  To enable software to recognize
  3638.           keystrokes, the BIOS in your computer translates each keystroke
  3639.           into a particular code.  Your software then uses that code to
  3640.           identify which key was pressed.  We refer to this code by various
  3641.           names, but the most common name is "Scan Code."  The Keystroke
  3642.           Reference Center displays the scan code for each key you press.
  3643.  
  3644.           The dBASE language, including the various compilers like
  3645.           Clipper, from Nantucket, return codes that are different than the
  3646.           BIOS scan codes.  To determine which key was pressed you would
  3647.           use the built-in INKEY() function.  The INKEY() values are also
  3648.           provided by The Keystroke Reference Center.
  3649.  
  3650.  
  3651.           The Keystroke Reference Center                           57 of 95
  3652.  
  3653.  
  3654.                      - Programmer's Productivity Pack Lite 1.00 -
  3655.  
  3656.  
  3657.           Portability Notes:
  3658.           ------------------
  3659.  
  3660.           Some keys are only available on  enhanced keyboards.  For
  3661.           instance, F11 and F12.  Some key combinations are recognized only
  3662.           with certain keyboards.  How do you remember which is which?  If
  3663.           you use an enhanced keyboard for software development, how do you
  3664.           make sure that users who don't have an enhanced keyboard can also
  3665.           use your program?
  3666.  
  3667.           The Keystroke Reference Center points out special keys or key
  3668.           combinations that not every keyboard can utilize.  The Keystroke
  3669.           Reference Center does this by way of "Portability Notes" which
  3670.           provide you with the information you need regarding the various
  3671.           keyboards.
  3672.  
  3673.           Moving the Display:
  3674.           -------------------
  3675.  
  3676.           There are a few keystrokes that have special meaning in The
  3677.           Keystroke Reference Center.  These include the keys used to move
  3678.           The Keystroke Reference Center display around the screen.
  3679.  
  3680.           Although these keystrokes are commands within The Keystroke
  3681.           Reference Center they will still be processed just like any other
  3682.           keystroke.  All their information, as well as any Portability
  3683.           Notes concerning them, will be displayed as the action is carried
  3684.           out.
  3685.  
  3686.           Move Left - To move the display one column left press <Alt><Left>
  3687.           (left arrow).
  3688.  
  3689.           Move Right - To move the display one column right press
  3690.           <Alt><Right>.
  3691.  
  3692.           Move to the Left Side - To move the display all the way to the
  3693.           left side of the screen press <Alt><Home>.
  3694.  
  3695.           Move to the Right Side - To move the display all the way to the
  3696.           right side of the screen press <Alt><End>.
  3697.  
  3698.           Move Up - To move the display one line up, press <Alt><Up> (up
  3699.           arrow).  You must have more than 25 lines of text visible on your
  3700.           screen to use this feature.
  3701.  
  3702.           Move Down - To move the display one line down, press <Alt><Down>.
  3703.           You must have more than 25 lines of text visible on your screen
  3704.           to use this feature.
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.           The Keystroke Reference Center                           58 of 95
  3711.  
  3712.  
  3713.                      - Programmer's Productivity Pack Lite 1.00 -
  3714.  
  3715.  
  3716.           Move to Top - To move the display all the way to the top of the
  3717.           screen, press <Alt><PgUp>.  You must have more than 25 lines of
  3718.           text visible on your screen to use this feature.
  3719.  
  3720.           Move to Bottom - To move the display all the way to the bottom of
  3721.           the screen, press <Alt><PgDn>.  You must have more than 25 lines
  3722.           of text visible on your screen to use this feature.
  3723.  
  3724.           Other Available Commands:
  3725.           -------------------------
  3726.  
  3727.           Returning to the Calculator - To return to the Calculator from
  3728.           The Keystroke Reference Center, press <Alt><Esc>.
  3729.  
  3730.           Exit from ProLite - Press <Esc> to exit from the pop-up.  This
  3731.           will enable you to pop back to the same place you left the next
  3732.           time you pop up ProLite.  Because The Keystroke Reference Center
  3733.           is an "attachment" to the Calculator, pressing the same Hot Key
  3734.           that normally activates the Calculator will instead pop up The
  3735.           Keystroke Reference Center.  This saves you the trouble of going
  3736.           through the Calculator itself to get back to The Keystroke
  3737.           Reference Center when it is the attachment you were last using.
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.           The Keystroke Reference Center                           59 of 95
  3770.  
  3771.  
  3772.                      - Programmer's Productivity Pack Lite 1.00 -
  3773.  
  3774.  
  3775.                            -------------------------------
  3776.                             Park Disk(s) and Blank Screen
  3777.                            -------------------------------
  3778.  
  3779.  
  3780.           The In-Depth Reference Guide:
  3781.           =============================
  3782.  
  3783.           You are probably aware that when the same characters are
  3784.           displayed in the same position on your screen for long periods of
  3785.           time they tend to burn a permanent image of themselves into the
  3786.           phosphorescent coating of your screen.  To avoid this many people
  3787.           use automatic screen blanking programs that blank the screen
  3788.           after a predetermined period of keyboard inactivity.  Such
  3789.           utilities are certainly useful and necessary, but many people
  3790.           feel that there is a better way to accomplish the same goal.
  3791.  
  3792.           There are some very obvious disadvantages to those particular
  3793.           utilities.  The screen is often blanked unexpectedly, which can
  3794.           sometimes be rather unsettling.  While the screen is blank it is
  3795.           not necessarily obvious whether or not the computer is turned on,
  3796.           which is an important consideration when more than one person
  3797.           might be using the machine.  Some of these utilities "eat" the
  3798.           next keystroke entered, while some do not.  Also, while you are
  3799.           away from your computer, your monitor is protected from screen
  3800.           burns, but your hard disk is not protected against head crashes.
  3801.  
  3802.           ProLite provides an alternative to the many "automatic" screen
  3803.           blanking programs.  Most users prefer to stop using their older
  3804.           screen blanking programs once they start using ProLite!
  3805.  
  3806.           ProLite never blanks your screen "automatically" (i.e.
  3807.           unexpectedly).  You are always in control.  Furthermore, when
  3808.           ProLite blanks your screen it also displays a clock on the screen
  3809.           so that you know that the computer is actually turned on.  This
  3810.           clock will never produce screen burns because it moves to a new
  3811.           position on the screen every 60 seconds.  This means that for
  3812.           every minute the clock is in a certain position, there are over
  3813.           three hours when that same position is blank.  To top it all off,
  3814.           when ProLite blanks your screen it also parks your hard disk by
  3815.           moving the read/write heads to the last cylinder.  If you have
  3816.           two hard disks, both will be parked.
  3817.  
  3818.           If you do not want to use the Disk Parking feature when you blank
  3819.           your screen you can disable that part of the utility with
  3820.           PCustom.  Refer to the PCustom In-Depth Reference Guide (page 77)
  3821.           for complete information on how to disable disk parking.
  3822.  
  3823.           ProLite's Screen Blanking and Disk Parking feature can be
  3824.           activated from either The Programmer's Calculator or from The
  3825.           ASCII and Color Attribute Chart.  In either case, the Screen
  3826.  
  3827.  
  3828.           Screen Blanking and Disk Parking                         60 of 95
  3829.  
  3830.  
  3831.                      - Programmer's Productivity Pack Lite 1.00 -
  3832.  
  3833.  
  3834.           Blanking and Disk Parking feature is invoked by pressing <P> for
  3835.           <P>ark.  You can also use <Ctrl><P> or <Alt><P>.
  3836.  
  3837.           Once activated, you may "unblank" the screen and return to where
  3838.           you left off by pressing any key.
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.           Screen Blanking and Disk Parking                         61 of 95
  3888.  
  3889.  
  3890.                      - Programmer's Productivity Pack Lite 1.00 -
  3891.  
  3892.  
  3893.                           ----------------------------------
  3894.                            PCustom: The Customizing Program
  3895.                           ----------------------------------
  3896.  
  3897.  
  3898.           PCustom is ProLite's companion customizing program.  You may
  3899.           never use it.  ProLite may be exactly to your liking just the way
  3900.           you received it.  You may like the colors we liked, the sounds we
  3901.           liked, the way we allocated memory.  But, it is more likely that
  3902.           even though you're happy with ProLite there are just one or two
  3903.           things you would have done differently.  This is your gateway to
  3904.           making those changes.
  3905.  
  3906.           PCustom was designed for the full-blown Programmer's Productivity
  3907.           Pack (to customize ProPak and ProSwap), so many options in
  3908.           PCustom are not relevant to ProLite.  These options will appear
  3909.           in a different video attribute and will not be usable.  The
  3910.           full-blown Programmer's Productivity Pack is also available on a
  3911.           try-before-you-buy basis.  Please refer to the PRODUCTS.DOC text
  3912.           file for complete details.
  3913.  
  3914.           Before we get started with PCustom, you should know that PCustom
  3915.           works by updating the special configuration file (PROLITE.CFG).
  3916.           This gives your custom features a "permanent" feel.  It makes the
  3917.           programs act as if they were actually custom written just for
  3918.           you!
  3919.  
  3920.           By the way, don't let the word permanent scare you.  You can
  3921.           change as many features as you want, as often as you want.
  3922.           Experiment.  Have fun!
  3923.  
  3924.  
  3925.           The Quick Start Tutorial:
  3926.           =========================
  3927.  
  3928.           If you placed PCustom into the same directory as ProLite when you
  3929.           installed the package, then you are ready to begin.  If you
  3930.           haven't done this yet, then please do so now.
  3931.  
  3932.           Start PCustom by typing "PCUSTOM" <Enter> at the DOS command
  3933.           prompt.  If you have a black-and-white (LCD, or Gas plasma)
  3934.           monitor you should type "PCUSTOM -B" (or -b, /B, /b, \b, or \B).
  3935.           This will make PCustom use the gray scale color set for its own
  3936.           screen displays.
  3937.  
  3938.           PCustom's Main Menu will appear.  The "Colors" selection is
  3939.           highlighted.  The text above the Menu tells you what the
  3940.           highlighted selection is for.  Press <Enter>.
  3941.  
  3942.  
  3943.  
  3944.  
  3945.  
  3946.           PCustom:  The Customizing Program                        62 of 95
  3947.  
  3948.  
  3949.                      - Programmer's Productivity Pack Lite 1.00 -
  3950.  
  3951.  
  3952.           This brings up the Colors Menu.  You can select one of the three
  3953.           standard color sets or design your own custom color set.  Select
  3954.           "Custom Attribute Set" and press <Enter>.
  3955.  
  3956.           This brings up the Select Colors Menu.  Select "ASCII Chart" and
  3957.           press <Enter>.
  3958.  
  3959.           Here are eight different portions of The ASCII Chart that you can
  3960.           customize to your liking.  We won't actually change anything now,
  3961.           so you can press <Esc> when you're finished looking around.  That
  3962.           pops you back to the Select Colors Menu.
  3963.  
  3964.           Select "Calculator" and press <Enter>.  This selection has its
  3965.           own Menu.  Choose one of the three options and press <Enter>.
  3966.           Make any changes you wish.  You can change your mind at any time,
  3967.           so, don't worry.  You can also restore the original colors by
  3968.           choosing one of the three default attribute sets on the Colors
  3969.           Submenu.
  3970.  
  3971.           Check out some more options from the Select Colors Menu and then
  3972.           <Esc> back to the Main Menu.  Select "Hot Keys" and press
  3973.           <Enter>.
  3974.  
  3975.           Here are the five major Hot Keys (only two apply to ProLite).
  3976.           Select one and press <Enter>.  You can choose your own or pick
  3977.           from the list.  What makes the list so useful is that you
  3978.           couldn't normally select any of those options from the keyboard.
  3979.           That's why if you change some the default Hot Keys "on the fly"
  3980.           you cannot reset them to the default value.  However, you can do
  3981.           it from PCustom.
  3982.  
  3983.           <Esc> back to the Main Menu and move to the "Sound Effects"
  3984.           option.
  3985.  
  3986.           Here you can modify the beeps, clicks, and raspberries (error
  3987.           sounds) to be just like you always thought they should be.
  3988.  
  3989.           Now move to the "Advanced Options" choice.  Here you can set the
  3990.           mode and format the Calculator starts up in, how swapping is
  3991.           handled, and a host of other things.
  3992.  
  3993.           Now move to "Exit PCustom".  Highlight "Cancel Changes" and press
  3994.           <Enter>.  This takes you out of the program without making any
  3995.           changes.
  3996.  
  3997.           Well, that's all for this tutorial.  As you can already see,
  3998.           PCustom is very easy to use, but very powerful.  You can modify
  3999.           almost any aspect of the Programmer's Productivity Pack Lite.
  4000.           Read the following In-Depth Reference Guide for a complete
  4001.           explanation of all the possibilities.
  4002.  
  4003.  
  4004.  
  4005.           PCustom:  The Customizing Program                        63 of 95
  4006.  
  4007.  
  4008.                      - Programmer's Productivity Pack Lite 1.00 -
  4009.  
  4010.  
  4011.                           ----------------------------------
  4012.                            PCustom: The Customizing Program
  4013.                           ----------------------------------
  4014.  
  4015.  
  4016.           The In-Depth Reference Guide:
  4017.           =============================
  4018.  
  4019.           PCustom is your ticket to a custom made version of the
  4020.           Programmer's Productivity Pack Lite.  PCustom gives you the
  4021.           freedom to choose.  With ProLite you do not have to adjust your
  4022.           work habits and preferences to match the software.  Instead you
  4023.           can change the software to match your work habits and
  4024.           preferences.  After all, you should be telling your computer what
  4025.           to do, not the other way around.
  4026.  
  4027.           Starting PCustom:
  4028.           -----------------
  4029.  
  4030.           When you first start PCustom, by typing "PCUSTOM" <Enter> at the
  4031.           DOS command prompt, PCustom will load and wait for your first
  4032.           choice.  Throughout the use of PCustom you will find that PCustom
  4033.           avoids making decisions for you, but rather lets you stay in
  4034.           control.  You may modify whatever you wish, and ignore that which
  4035.           you do not wish to modify.  You're the boss, and PCustom knows
  4036.           it.
  4037.  
  4038.           If you have a black-and-white (gray scale, LCD, or gas plasma)
  4039.           monitor you should type "PCUSTOM -B" (or -b, /B, /b,\b, or \B).
  4040.           This will make PCustom use the gray scale color set for its
  4041.           screen displays.
  4042.  
  4043.           How PCustom Works:
  4044.           ------------------
  4045.  
  4046.           To understand how PCustom works, it would be helpful to know a
  4047.           little about what it is that PCustom actually does to the
  4048.           PROLITE.CFG file.  Here's the basic sequence of events that occur
  4049.           during customizing:
  4050.  
  4051.           PCustom examines the current directory for the PROLITE.CFG file.
  4052.           If the file is not found, then PCustom checks the same directory
  4053.           from which it was loaded (if you are using DOS 3.0 or higher).
  4054.           If the configuration file is still not found, PCustom will check
  4055.           the directories in the DOS path.
  4056.  
  4057.           Once the file is found, PCustom reads the current settings from
  4058.           it and then set its internal values to match.  At this point
  4059.           PCustom closes the file and works only with its internal tables.
  4060.           This is why you can always change your mind about making any of
  4061.           the changes permanent.
  4062.  
  4063.  
  4064.           PCustom:  The Customizing Program                        64 of 95
  4065.  
  4066.  
  4067.                      - Programmer's Productivity Pack Lite 1.00 -
  4068.  
  4069.  
  4070.           You then use PCustom's pull down menu system to customize any and
  4071.           all features.  When you are through making any custom changes you
  4072.           desire, select the "Exit PCustom" choice on the Main Menu.  This
  4073.           brings up three additional choices (only two apply to ProLite).
  4074.           Choosing "Save Changes" will instruct PCustom to install the new
  4075.           values into the PROLITE.CFG file.  Choosing "Select (Alt-Q)"
  4076.           gives you another chance to select the file or files to actually
  4077.           modify (not relevant in ProLite).  Choosing "Cancel Changes"
  4078.           returns you to DOS without altering the .EXE or .CFG files in any
  4079.           way.
  4080.  
  4081.           We use the term "permanent" when we talk about making changes to
  4082.           the PROLITE.CFG file, but we mean "permanent" in the sense that
  4083.           they are permanent until you change them again at some future
  4084.           time.  You may customize the ProLite files as often as you wish.
  4085.  
  4086.           The PCustom Menus:
  4087.           ------------------
  4088.  
  4089.           The following information outlines each option on each Menu and
  4090.           Submenu available within PCustom.
  4091.  
  4092.           The Main Menu:
  4093.           --------------
  4094.  
  4095.           The Main Menu is the first menu to appear.  You will see the
  4096.           following:
  4097.  
  4098.                (Due to space limitations and printer incompatibilities,
  4099.                 this figure appears only in the complete Programmer's
  4100.                       Productivity Pack printed User's Guide.)
  4101.  
  4102.                              Figure 6: PCustom Main Menu
  4103.  
  4104.           The Colors option is highlighted.  If you press <Enter> it will
  4105.           be selected.  The text at the top tells you what that option is
  4106.           for.  You can select any one of the five options by moving the
  4107.           highlight bar with the <Arrow> keys.  Each of these options will
  4108.           produce its own menu.  Let's look at each one individually.
  4109.  
  4110.           The Colors Menu:
  4111.           ~~~~~~~~~~~~~~~~
  4112.           When you select the Colors option you will see the following:
  4113.  
  4114.                (Due to space limitations and printer incompatibilities,
  4115.                 this figure appears only in the complete Programmer's
  4116.                       Productivity Pack printed User's Guide.)
  4117.  
  4118.                             Figure 7: PCustom Colors Menu
  4119.  
  4120.  
  4121.  
  4122.  
  4123.           PCustom:  The Customizing Program                        65 of 95
  4124.  
  4125.  
  4126.                      - Programmer's Productivity Pack Lite 1.00 -
  4127.  
  4128.  
  4129.           The Colors option is the door to the many options available for
  4130.           choosing the colors you prefer for each and every aspect of the
  4131.           ProLite package.
  4132.  
  4133.           ProLite has two built-in color sets, one for color monitors, and
  4134.           one for monochrome monitors.  If you use a color monitor you will
  4135.           be able to change the color attribute set to your preferences.
  4136.           If you use a monochrome monitor you will be able to change the
  4137.           monochrome attribute set as desired.  If you use a gray scale
  4138.           (black and white) monitor then you will be adjusting the color
  4139.           attribute set (not the monochrome attribute set) to your
  4140.           preferences.
  4141.  
  4142.           If you have two monitors, say one color and the other monochrome,
  4143.           and two display adapters (this is common among programmers who
  4144.           spend time with a debugger), then both attribute sets will be
  4145.           relevant to your needs.  When you pop up ProLite on your color
  4146.           monitor it will automatically use the color attribute set.  When
  4147.           you pop it up on your monochrome monitor it will automatically
  4148.           use the monochrome attribute set.
  4149.  
  4150.           These are the four options you can select from this Menu:
  4151.  
  4152.              Color Attribute Set - This option restores ProLite to the same
  4153.              color attributes that were in use when ProLite was shipped.
  4154.              This is useful when you have made changes and want to quickly
  4155.              restore ProLite to a known starting point before continuing
  4156.              with the customizing of individual colors, or for just
  4157.              returning ProLite to its original color settings whenever you
  4158.              desire.
  4159.  
  4160.              Monochrome Attribute Set - Selecting this option automatically
  4161.              restores the monochrome attribute set to the values that were
  4162.              in use when ProLite was originally shipped.  You may still
  4163.              change individual attributes later if you wish.
  4164.  
  4165.              Gray Scale Attribute Set - This option sets the values of the
  4166.              color attribute set to those values that look best on a gray
  4167.              scale monitor.  These "factory set" values will give you a
  4168.              good starting place even if you prefer to change some of them
  4169.              later.  You can always move down to the "Custom Attribute Set"
  4170.              and fine tune any values you wish to change.
  4171.  
  4172.              Custom Attribute Set - This option enables you to customize
  4173.              the attribute set to best suit your individual tastes.  If you
  4174.              are using a color or gray scale monitor, you will be adjusting
  4175.              the color attribute set.  If you are using a monochrome
  4176.              monitor you will be adjusting the monochrome attribute set.
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.           PCustom:  The Customizing Program                        66 of 95
  4183.  
  4184.  
  4185.                      - Programmer's Productivity Pack Lite 1.00 -
  4186.  
  4187.  
  4188.           PCustom is smart enough to know whether you are using a
  4189.           monochrome monitor or a color monitor.  PCustom will
  4190.           automatically determine which attribute set should be used, no
  4191.           additional steps are necessary on your part.  Since gray scale
  4192.           monitors look just like color monitors to software, you need to
  4193.           use the "-B" command line parameter to tell PCustom that you have
  4194.           a black-and-white monitor.
  4195.  
  4196.           Select the Custom Attribute Set if you wish to customize any of
  4197.           the colors on your copy of ProLite.  Move the highlight bar down
  4198.           until Custom Attribute Set is highlighted and press <Enter>.
  4199.           This will bring up the Select Colors Menu.
  4200.  
  4201.           When you select the Custom Attribute Set you will see the
  4202.           following Menu appear:
  4203.  
  4204.                (Due to space limitations and printer incompatibilities,
  4205.                 this figure appears only in the complete Programmer's
  4206.                       Productivity Pack printed User's Guide.)
  4207.  
  4208.                            Figure 8: Custom Colors Submenu
  4209.  
  4210.           This is the Select Colors Menu.  You can set the colors to each
  4211.           of the eight options listed on the Menu.  Let's look at each of
  4212.           the options.
  4213.  
  4214.              ASCII Chart:  This option provides you with the means of
  4215.              customizing the colors used to display The ASCII and Color
  4216.              Attribute Chart, which is one of the attachments to The
  4217.              Programmer's Calculator.  There are eight separate aspects of
  4218.              The ASCII Chart that you can customize.  If you have a color
  4219.              monitor you can change the colors to any of the color
  4220.              combinations listed in the Color Attribute Chart.  If you have
  4221.              a monochrome monitor you will be able to customize these
  4222.              features to any of the monochrome attributes listed in the
  4223.              Color Attribute Chart.  ProLite will automatically offer you
  4224.              only those options which are possible on your monitor.
  4225.  
  4226.              These are the eight aspects of The ASCII Chart that you can
  4227.              customize.
  4228.  
  4229.                 Outline Color (Frame) - As the name implies, this option
  4230.                 enables you to change the color of the outline or frame
  4231.                 around The ASCII Chart.
  4232.  
  4233.                 Title Color (top of chart) - This option changes the color
  4234.                 of the title of the chart.
  4235.  
  4236.                 Column Heading Color - This option changes the color of the
  4237.                 text appearing at the top of each column.
  4238.  
  4239.  
  4240.  
  4241.           PCustom:  The Customizing Program                        67 of 95
  4242.  
  4243.  
  4244.                      - Programmer's Productivity Pack Lite 1.00 -
  4245.  
  4246.  
  4247.                 ASCII Code Color (Dec & Hex) - This option changes the
  4248.                 color of the decimal and hexadecimal values that appear to
  4249.                 the left of the ASCII character.
  4250.  
  4251.                 ASCII Character Color - This option changes the color of
  4252.                 the ASCII character itself, in the left hand section of the
  4253.                 chart.
  4254.  
  4255.                 Attribute Description Color - This option changes the color
  4256.                 of the words that describe the color that each attribute
  4257.                 (ASCII code) will produce when used as an attribute byte.
  4258.  
  4259.                 Large Character Color - This option enables you to change
  4260.                 the color of the enlarged ASCII characters that display in
  4261.                 the right hand section of the chart.
  4262.  
  4263.                 Large Code Color - Selecting this option enables you to
  4264.                 change the color of the decimal value listed next to each
  4265.                 of the enlarged characters in the right hand section of the
  4266.                 chart.
  4267.  
  4268.              Calculator:  This option opens the door for you to customize
  4269.              the appearance of the Calculator.  This option leads to a
  4270.              submenu which makes available three categories of color
  4271.              attributes that go into making up the overall appearance of
  4272.              the Calculator.
  4273.  
  4274.                (Due to space limitations and printer incompatibilities,
  4275.                 this figure appears only in the complete Programmer's
  4276.                       Productivity Pack printed User's Guide.)
  4277.  
  4278.                           Figure 9: Calculator Sub-Submenu
  4279.  
  4280.              Let's look at the three options on the Submenu.
  4281.  
  4282.                 Actual Calculator:  This option enables you to change each
  4283.                 individual color involved in the actual Calculator display.
  4284.                 The different portions of the display are:
  4285.  
  4286.                    Current Format Highlighting - When you switch from one
  4287.                    numeric format to another, Decimal to Hexadecimal, etc.,
  4288.                    you will notice that the format title and the pending
  4289.                    operation (if any) will be updated to appear
  4290.                    highlighted.  This option enables you to customize the
  4291.                    color of this highlighting.
  4292.  
  4293.                    Signed or Unsigned Title - This option controls the
  4294.                    color used to display the sign mode at the top center of
  4295.                    the Calculator display.
  4296.  
  4297.  
  4298.  
  4299.  
  4300.           PCustom:  The Customizing Program                        68 of 95
  4301.  
  4302.  
  4303.                      - Programmer's Productivity Pack Lite 1.00 -
  4304.  
  4305.  
  4306.                    High Word, High Nibble - The Programmer's Calculator is
  4307.                    specially designed to make it easy to separate the
  4308.                    various pieces of information present when handling
  4309.                    large values.  This is tremendously useful when keeping
  4310.                    track of 32 ones and zeros in the Binary Box.  This
  4311.                    option, and the next three that go with it, enables you
  4312.                    to make a distinct color difference between the logical
  4313.                    divisions of the 32 bit binary values.  This option
  4314.                    changes the color of the highest four bits of each
  4315.                    value.
  4316.  
  4317.                    High Word, Low Nibble - This option changes the color of
  4318.                    the second to the highest four bits of each value.
  4319.  
  4320.                    Low Word, High Nibble - This option changes the color of
  4321.                    the second to the lowest four bits of each value.
  4322.  
  4323.                    Low Word, Low Nibble - This option changes the color of
  4324.                    the lowest four bits of each value.
  4325.  
  4326.                    Normal Values Color - This option changes the appearance
  4327.                    of the values in the Decimal and Octal Boxes.
  4328.  
  4329.                    Saved Values Color - This option changes the color of
  4330.                    the four saved values that appear in the Save Window.
  4331.  
  4332.                    Information Color - This option changes the color of the
  4333.                    various pieces of identifying information present in the
  4334.                    Calculator display.
  4335.  
  4336.                    Clock and Date Color - This option changes the color of
  4337.                    the date and time displayed in the information window of
  4338.                    the Calculator.
  4339.  
  4340.                 Calculator Menu:  This option enables you to change each
  4341.                 individual color involved in the display of the
  4342.                 Calculator's Menu.  This option is best experimented with
  4343.                 to see the effect that each color change has on the overall
  4344.                 appearance of the Calculator.
  4345.  
  4346.                    Information Color - This option changes the colors of
  4347.                    the various pieces of information displayed in the
  4348.                    Calculator's Menu.
  4349.  
  4350.                    Description Color - This option changes the color of the
  4351.                    description of each command available within the
  4352.                    Calculator.
  4353.  
  4354.                    Function Keys Color - This choice changes the color of
  4355.                    the normal function key options.
  4356.  
  4357.  
  4358.  
  4359.           PCustom:  The Customizing Program                        69 of 95
  4360.  
  4361.  
  4362.                      - Programmer's Productivity Pack Lite 1.00 -
  4363.  
  4364.  
  4365.                    Shifted Function Keys - This choice changes the color of
  4366.                    the shifted function key options.
  4367.  
  4368.                 Save/Insert Pick Window:  This option enables you to change
  4369.                 each individual color involved in the display of the "pick
  4370.                 window" which is used to select which value to save or
  4371.                 insert when more than one is available.
  4372.  
  4373.                    Normal Choices Color - This is the color used to display
  4374.                    values that may be chosen.
  4375.  
  4376.                    Outline Color - This option controls the color of the
  4377.                    frame around the pick window.
  4378.  
  4379.                    Heading Color - This option controls the color of the
  4380.                    title of the pick window.
  4381.  
  4382.                    Selected Highlight - This option controls the color of
  4383.                    the pick bar, the highlighted bar that you move up and
  4384.                    down to select an option.
  4385.  
  4386.                    Empty Color - This is the color used to display empty
  4387.                    choices, choices with a value of zero.
  4388.  
  4389.                    Empty Selected Color - This is the color used when an
  4390.                    empty choice (one with a value of zero) is selected.
  4391.  
  4392.              Error Messages:  This option enables you to select the colors
  4393.              you prefer for error messages.
  4394.  
  4395.                 Outline Color - This is the color of the outline around the
  4396.                 error message window.
  4397.  
  4398.                 Heading Color - This is the color of the title of the error
  4399.                 message window.
  4400.  
  4401.                 Normal Text Color - Error messages appear in two different
  4402.                 colors in order to highlight certain information.  This is
  4403.                 the usual color for the text of an error message.
  4404.  
  4405.                 Alternate Text Color - This is the color used to highlight
  4406.                 or bring attention to some of the information displayed in
  4407.                 an error message.
  4408.  
  4409.              Keystroke Reference Center:  This option leads to the
  4410.              individual choices available for customizing the appearance of
  4411.              The Keystroke Reference Center display.
  4412.  
  4413.                 Outline - This option changes the color of the outline or
  4414.                 frame around The Keystroke Reference Center.
  4415.  
  4416.  
  4417.  
  4418.           PCustom:  The Customizing Program                        70 of 95
  4419.  
  4420.  
  4421.                      - Programmer's Productivity Pack Lite 1.00 -
  4422.  
  4423.  
  4424.                 Information - This option enables you to customize the
  4425.                 color of the various pieces of identifying information
  4426.                 present in The Keystroke Reference Center display.
  4427.  
  4428.                 Time & Date - This option enables you to customize the
  4429.                 color used to display the current time and date.
  4430.  
  4431.                 Instructions - This option enables you to change the color
  4432.                 of the instructions that appear on the screen in The
  4433.                 Keystroke Reference Center display.
  4434.  
  4435.                 Status Byte High - The BIOS keyboard status bytes are
  4436.                 displayed in two alternating colors to make it easier to
  4437.                 identify each bit individually.  Selecting this option
  4438.                 enables you to change one of these colors.
  4439.  
  4440.                 Status Byte Low - This option enables you to change the
  4441.                 alternate color used to display the BIOS keyboard status
  4442.                 bytes.
  4443.  
  4444.                 Key Code Information - This option controls the color of
  4445.                 the information appearing within the code boxes of the
  4446.                 display.
  4447.  
  4448.                 Key Code Row Heading - This option controls the color of
  4449.                 the words "Dec" and "Hex" in the codes boxes.
  4450.  
  4451.                 Note Window Outline - This option controls the outline of
  4452.                 the Portability Note window.
  4453.  
  4454.                 Note Window Text - This option controls the text in the
  4455.                 Portability Note window.
  4456.  
  4457.              Control Center Menu:  Not available in ProLite.
  4458.  
  4459.              Normal Messages:  This option leads to the individual choices
  4460.              available for customizing the appearance of the Message Window
  4461.              and the text it contains.
  4462.  
  4463.                 Outline - This option controls the color of the frame
  4464.                 around normal Message Windows.
  4465.  
  4466.                 Heading - This option controls the color of the heading of
  4467.                 normal Message Windows.
  4468.  
  4469.                 Normal Message Text - This option controls the color of
  4470.                 text displayed in normal Message Windows.
  4471.  
  4472.                 Highlighted Message Text - This option controls the color
  4473.                 of special information displayed in normal Message Windows.
  4474.  
  4475.  
  4476.  
  4477.           PCustom:  The Customizing Program                        71 of 95
  4478.  
  4479.  
  4480.                      - Programmer's Productivity Pack Lite 1.00 -
  4481.  
  4482.  
  4483.                 Alternate Message Text - This option controls the color of
  4484.                 unavailable options in Message Windows that also present
  4485.                 choices.
  4486.  
  4487.                 Normal Selected Text - This option controls the color of
  4488.                 the highlight bar in Message Windows that also present
  4489.                 choices.
  4490.  
  4491.                 Alternate Selected Text - This option controls the color of
  4492.                 the highlight bar when unavailable options are selected.
  4493.  
  4494.              Screen Blank (Clock):  This option enables you to change the
  4495.              color used to display the on screen clock during screen
  4496.              blanking and hard disk parking.
  4497.  
  4498.              Screen Grabber Box:  Not available in ProLite.
  4499.  
  4500.              Swapping In/Out Message:  This option enables you to customize
  4501.              the color of the message that appears on the bottom line of
  4502.              the screen while ProLite is swapping into or out of memory.
  4503.  
  4504.           The Hot Keys Menu:
  4505.           ~~~~~~~~~~~~~~~~~~
  4506.           The second selection on the Main Menu is to customize the Hot
  4507.           Keys used by ProLite.  When you select it you will see the
  4508.           following Menu.
  4509.  
  4510.                (Due to space limitations and printer incompatibilities,
  4511.                 this figure appears only in the complete Programmer's
  4512.                       Productivity Pack printed User's Guide.)
  4513.  
  4514.                         Figure 10: Customize Hot Keys Submenu
  4515.  
  4516.           This Menu enables you to change each of the five Hot Keys used by
  4517.           ProLite.
  4518.  
  4519.           For each option you will be presented with a list of eight of the
  4520.           most useful Hot Keys, plus an option called "Other" through which
  4521.           you may select key combinations that are not shown in the initial
  4522.           list.
  4523.  
  4524.           The Hot Keys appearing in the list are key combinations like
  4525.           <LeftShift><Ctrl> or <Ctrl><RightShift> which cannot be entered
  4526.           interactively through the "Other" option.  If you were to attempt
  4527.           to choose this type of key combination through the "Other"
  4528.           option, PCustom would not have any way of knowing if you wanted
  4529.           <Ctrl><Alt> or if you intended to follow it up with another
  4530.           letter like <Ctrl><Alt><P>.  Those two modifier key combinations
  4531.           don't normally produce a scan code.  You can prove this by trying
  4532.           them on The Keystroke Reference Center.  PCustom presents a list
  4533.           of these types of keys and accepts what you pick from that list.
  4534.  
  4535.  
  4536.           PCustom:  The Customizing Program                        72 of 95
  4537.  
  4538.  
  4539.                      - Programmer's Productivity Pack Lite 1.00 -
  4540.  
  4541.  
  4542.                (Due to space limitations and printer incompatibilities,
  4543.                 this figure appears only in the complete Programmer's
  4544.                       Productivity Pack printed User's Guide.)
  4545.  
  4546.                              Figure 11: Hot Keys Submenu
  4547.  
  4548.           The same eight Hot Keys are listed for each of the five tools or
  4549.           functions that use Hot Keys.  Any key which is dim is already in
  4550.           use.  You cannot select the same Hot Key for two functions.  The
  4551.           five tools or functions are the following:
  4552.  
  4553.              Calculator and Attachments - This option changes the Hot Key
  4554.              used to pop up The Programmer's Calculator.  Because the
  4555.              current attachment might be The ASCII Chart or The Keystroke
  4556.              Reference Center rather than the Calculator, this option
  4557.              effectively controls the Hot Key used to pop up any of the
  4558.              Calculator attachments.
  4559.  
  4560.              Control Center Menu - Not available in ProLite.
  4561.              Screen Grabber - Not available in ProLite.
  4562.              Start Recording - Not available in ProLite.
  4563.              Stop Recording - Not available in ProLite.
  4564.  
  4565.              Pop-Up DOS Shell - This option enables you to select the Hot
  4566.              Key used to activate the Pop-Up DOS Shell capability in
  4567.              ProLite.
  4568.  
  4569.           Note:  You should avoid <Alt><LeftShift> and <Ctrl><LeftShift> as
  4570.           hot keys.
  4571.  
  4572.           The Sound Effects Menu:
  4573.           ~~~~~~~~~~~~~~~~~~~~~~~
  4574.           The third choice on the Main Menu enables you to customize the
  4575.           sound effects produced by ProLite.  Selecting this option brings
  4576.           up the Sound Effects Menu.
  4577.  
  4578.                (Due to space limitations and printer incompatibilities,
  4579.                 this figure appears only in the complete Programmer's
  4580.                       Productivity Pack printed User's Guide.)
  4581.  
  4582.                           Figure 12: Sound Effects Submenu
  4583.  
  4584.           This Menu provides you with a simple method of customizing the
  4585.           various sound effects used within ProLite.  Alter each effect
  4586.           until it sounds the way you prefer on your particular machine.
  4587.  
  4588.              Beep Sound - The beep sound is the sound ProLite makes when
  4589.              you press a key it doesn't understand, or when something
  4590.              occurs that you should know about.
  4591.  
  4592.  
  4593.  
  4594.  
  4595.           PCustom:  The Customizing Program                        73 of 95
  4596.  
  4597.  
  4598.                      - Programmer's Productivity Pack Lite 1.00 -
  4599.  
  4600.  
  4601.                 You will be able to set the frequency or pitch of the tone
  4602.                 and its duration.
  4603.  
  4604.              Click Sound - The click sound is the sound ProLite makes when
  4605.              you switch formats or toggle the sign in The Programmer's
  4606.              Calculator.
  4607.  
  4608.                 You will be able to set the frequency or pitch of the tone
  4609.                 and its duration.
  4610.  
  4611.              Error Sound - The error sound is the sound ProLite makes when
  4612.              an error occurs or when ProLite is unable to carry out your
  4613.              instructions.  This sound is produced differently than the
  4614.              other two sounds.
  4615.  
  4616.                 The error sound is made by sounding the beep, pausing,
  4617.                 sounding the click, pausing, and then repeating this a
  4618.                 specified number of times.
  4619.  
  4620.                 You can easily change the duration of the pause and the
  4621.                 number of times the sounds are repeated in order to obtain
  4622.                 the error effect.
  4623.  
  4624.           The Advanced Options Menu:
  4625.           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  4626.           The fourth option on the Main Menu is Advanced Options.  This is
  4627.           perhaps the most frequently chosen Main Menu option.  This option
  4628.           leads to several submenus that enable you to change many features
  4629.           that do not fall under the other Main Menu choices.  This could
  4630.           almost be called the "Miscellaneous Options" choice on the Main
  4631.           Menu.  Selecting this option will bring up the Advanced Options
  4632.           Menu.
  4633.  
  4634.           When this option is selected you will see the following Menu
  4635.           appear:
  4636.  
  4637.                (Due to space limitations and printer incompatibilities,
  4638.                 this figure appears only in the complete Programmer's
  4639.                       Productivity Pack printed User's Guide.)
  4640.  
  4641.                          Figure 13: Advanced Options Submenu
  4642.  
  4643.           The following information explains each of the seven options and
  4644.           what features it enables you to customize.
  4645.  
  4646.              Calculator:  This option brings up a Submenu that enables you
  4647.              to change the default mode and format for the Calculator when
  4648.              it is first popped up.
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.           PCustom:  The Customizing Program                        74 of 95
  4655.  
  4656.  
  4657.                      - Programmer's Productivity Pack Lite 1.00 -
  4658.  
  4659.  
  4660.                 Start up Numeric Mode:  This option enables you to
  4661.                 determine whether The Programmer's Calculator initially
  4662.                 starts up in Signed or Unsigned mode.
  4663.  
  4664.                 Start up Numeric Format:  This option enables you to select
  4665.                 the numeric format (Decimal, Hexadecimal, Binary, or Octal)
  4666.                 The Programmer's Calculator will be in when it is first
  4667.                 started.
  4668.  
  4669.              cApture:  Not available in ProLite.
  4670.  
  4671.              Character Filter Method:  Not available in ProLite.
  4672.              Replacement Character:  Not available in ProLite.
  4673.              Screen Capture File Extension:  Not available in ProLite.
  4674.              Grabber:  Not available in ProLite.
  4675.  
  4676.              Swap Control:  This option opens up a sub-menu with several
  4677.              options which control how ProLite handles the swapping
  4678.              operation.
  4679.  
  4680.                 First Swap Path:  When ProLite swaps to disk it swaps into
  4681.                 files that are marked with the "hidden" attribute.  This
  4682.                 option controls where the first swap file will be placed.
  4683.                 PCustom will verify your input, so be sure to specify only
  4684.                 valid (existing) drives and directories.  Floppy disks are
  4685.                 not acceptable for swapping purposes, but Bernoulli drives
  4686.                 are fine.  This is the same path that will be used by the
  4687.                 pop-up DOS shell for its swap file as well.  Do not specify
  4688.                 a filename, only a pathname.
  4689.  
  4690.                 Second Swap Path:  This option is just like the previous
  4691.                 option except it controls the path for the second swap
  4692.                 file.  If you use the "-M" command line option, or choose
  4693.                 "Sacrifice speed for space" under the "Swap Tuning" option
  4694.                 (below) then the second swap file will not be used at all.
  4695.  
  4696.                 Pop-Up DOS Shell:  This determines whether the pop-up DOS
  4697.                 shell capabilities will be available when ProLite is
  4698.                 resident.  The only time you will not want the pop-up DOS
  4699.                 shell enabled is when you are using a DOS version earlier
  4700.                 than 3.0, or when you are trying to avoid conflicts with
  4701.                 another program.
  4702.  
  4703.                 Max Size of DOS Shell:  The size of the DOS shell can be
  4704.                 controlled to a certain extent.  The smallest it can be is
  4705.                 about 124K bytes.  The largest it can be is the amount of
  4706.                 memory that was available when ProLite was loaded (less
  4707.                 about 20K).  Why would you want to change the size of the
  4708.                 DOS shell?  The larger the shell, the longer it will take
  4709.                 to swap in and out, and the more disk space or EMS/XMS
  4710.                 memory it will require.  By decreasing the maximum size of
  4711.  
  4712.  
  4713.           PCustom:  The Customizing Program                        75 of 95
  4714.  
  4715.  
  4716.                      - Programmer's Productivity Pack Lite 1.00 -
  4717.  
  4718.  
  4719.                 the DOS shell you will conserve resources and speed up the
  4720.                 swapping process.  The default is "All Available Memory".
  4721.  
  4722.                 EMS Swapping:  This option controls whether EMS (Expanded)
  4723.                 memory may be used for swapping purposes.  It may be
  4724.                 enabled or disabled.  The default is "Enabled".
  4725.  
  4726.                 XMS Swapping:  This option controls whether XMS (Extended)
  4727.                 memory may be used for swapping purposes.  It may be
  4728.                 enabled or disabled.  The default is "Enabled".
  4729.  
  4730.                 Swap Message (EMS/XMS):  This controls the display of the
  4731.                 "Swapping In/Out" message that appears on the bottom line
  4732.                 of the screen during the swapping operation.  Generally the
  4733.                 message should be displayed.  If, for some reason, you
  4734.                 don't want this message, simply turn it off here.
  4735.  
  4736.                 Prefer EMS over XMS:  When both EMS and XMS memory swapping
  4737.                 are enabled, this option controls which one is tried first.
  4738.                 ProLite will try one, if there's not enough memory
  4739.                 available it will try the other.  This option controls
  4740.                 whether EMS is tried before XMS memory, or vice versa.
  4741.  
  4742.                 Disk Swapping:  This option controls whether swapping to
  4743.                 disk is allowed.  Normally ProLite will swap to disk only
  4744.                 when absolutely necessary (when there is insufficient EMS
  4745.                 or XMS memory, or when EMS/XMS swapping is disabled).  With
  4746.                 this option you can instruct ProLite to abort during
  4747.                 loading if there is not enough EMS or XMS memory - in other
  4748.                 words, never use disk swapping.
  4749.  
  4750.                 Swap Tuning (XMS/Disk only):  When swapping to disk or XMS
  4751.                 memory, ProLite normally uses two files or two memory
  4752.                 blocks.  This takes up more disk space or more XMS memory,
  4753.                 but it results in a very fast swapping operation.  If you
  4754.                 prefer conserving disk space or XMS memory, at the expense
  4755.                 of speed, this option makes it easy.
  4756.  
  4757.              Registered To:  We keep track of registered versions by serial
  4758.              number, but most people don't like being just a number.  This
  4759.              option enables registered users to record their name or
  4760.              company name so that ProLite and PCustom will display
  4761.              "Registered to <your name>" when they start.  This lets you
  4762.              personalize ProLite and PCustom.
  4763.  
  4764.              Rename ProPak:  Not available in ProLite.
  4765.  
  4766.              Miscellaneous:  This option takes you a step deeper into
  4767.              ProLite's inner workings.
  4768.  
  4769.  
  4770.  
  4771.  
  4772.           PCustom:  The Customizing Program                        76 of 95
  4773.  
  4774.  
  4775.                      - Programmer's Productivity Pack Lite 1.00 -
  4776.  
  4777.  
  4778.                 Key Recording FileName Extension:  Not available in
  4779.                 ProLite.
  4780.                 Read Key Recordings from File:  Not available in ProLite.
  4781.                 Keystroke Playback Delay:  Not available in ProLite.
  4782.                 Memory Reserved for Recordings:  Not available in ProLite.
  4783.  
  4784.                (Due to space limitations and printer incompatibilities,
  4785.                 this figure appears only in the complete Programmer's
  4786.                       Productivity Pack printed User's Guide.)
  4787.  
  4788.                         Figure 14: Miscellaneous Sub-Submenu
  4789.  
  4790.                 DOS Print, File Pick Window:  Not available in ProLite.
  4791.  
  4792.                 Screen Blanking Options:  When ProLite blanks your screen
  4793.                 and displays a moving clock, it also parks your hard disk.
  4794.                 If you have two hard disks, ProLite will park both of them.
  4795.                 Parking simply means positioning the read/write heads over
  4796.                 the last cylinder on the hard disk.  This is simply a
  4797.                 preventive measure or safety feature.  If you prefer, you
  4798.                 may instruct ProLite to NOT park the hard disk or disks
  4799.                 when blanking the screen.  This submenu option enables you
  4800.                 to do that if you desire.
  4801.  
  4802.                 Use EMS Memory for overlays:  Not available in ProLite.
  4803.  
  4804.                 Return to application with:  This option is really only of
  4805.                 use to those who have EGA cards.  When ProLite opens up a
  4806.                 window it records the previous cursor size and position so
  4807.                 that the cursor can later be restored exactly as it was
  4808.                 when ProLite was popped up.  Sometimes the cursor size will
  4809.                 not be restored properly due to a bug in the EGA's ROM BIOS
  4810.                 extensions.  To get around this problem, this option
  4811.                 enables you to instruct ProLite to always restore the
  4812.                 common two line cursor (a cursor with the bottom two scan
  4813.                 lines blinking).  Most user's will never need this option.
  4814.                 You'll know if you are one of those who needs to use it.
  4815.  
  4816.                 Overlay Buffer Size Supplement:  Not available in ProLite.
  4817.  
  4818.                 Microsoft Quick Environment Fix:  This option is only
  4819.                 important to people who use the newer versions of the
  4820.                 Microsoft Quick Environments - such as QuickBasic 4.5,
  4821.                 Quick C 2.0, etc.  This option will enable ProLite to
  4822.                 safely pop-up over these environments.  When operating in
  4823.                 non-swapping mode (the "-N" or "-T" command line option),
  4824.                 ProLite will normally not work with the Quick Environments.
  4825.                 This option tells ProLite to deal with this special case
  4826.                 when it is running in non-swapping mode.
  4827.  
  4828.  
  4829.  
  4830.  
  4831.           PCustom:  The Customizing Program                        77 of 95
  4832.  
  4833.  
  4834.                      - Programmer's Productivity Pack Lite 1.00 -
  4835.  
  4836.  
  4837.           The Exit PCustom Menu:
  4838.           ~~~~~~~~~~~~~~~~~~~~~~
  4839.           The fifth option on the Main Menu is Exit PCustom.  This will
  4840.           take you back to the DOS prompt.  You can also select whether to
  4841.           save or cancel the changes you have made.  If you select this
  4842.           option the Exit PCustom Menu will appear.
  4843.  
  4844.           When this option is selected you will see the following Menu:
  4845.  
  4846.                (Due to space limitations and printer incompatibilities,
  4847.                 this figure appears only in the complete Programmer's
  4848.                       Productivity Pack printed User's Guide.)
  4849.  
  4850.                            Figure 15: Exit PCustom Submenu
  4851.  
  4852.              Save Changes:  This option tells PCustom to write the changes
  4853.              you have specified into the PROLITE.CFG file.
  4854.  
  4855.              Select (Alt-Q):  Not available in ProLite.
  4856.  
  4857.              Cancel Changes:  This option enables you to return to DOS
  4858.              without altering the PROLITE.CFG file in any way.  This option
  4859.              cancels any changes you have made and exits from PCustom.
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.           PCustom:  The Customizing Program                        78 of 95
  4891.  
  4892.  
  4893.                      - Programmer's Productivity Pack Lite 1.00 -
  4894.  
  4895.  
  4896.                             -----------------------------
  4897.                               Miscellaneous Information
  4898.                             -----------------------------
  4899.  
  4900.  
  4901.           EXE Compression Utilities:
  4902.           ==========================
  4903.  
  4904.           Many people are now starting to use a free utility called "LZE"
  4905.           to compress executable files while still allowing them to run
  4906.           normally.  LZE is a wonderfully useful tool, but it does have a
  4907.           few drawbacks.
  4908.  
  4909.           There have been numerous reports of LZE-compressed programs
  4910.           corrupting DESQview memory blocks when they load.  Since many of
  4911.           you operate in the DESQview environment it may not be safe for
  4912.           you to compress the programs.
  4913.  
  4914.           If you do not use DESQview, and wish to compress the programs
  4915.           using your copy of LZE (if you have a copy), then here is the
  4916.           information you need:
  4917.  
  4918.              PCustom may be compressed with LZE without causing any
  4919.              difficulties.
  4920.  
  4921.              ProLite cannot be safely compressed with LZE because of an
  4922.              undetermined problem that affects the pop-up DOS shell
  4923.              capability.  This problem only affects some systems.  ProLite
  4924.              may or may not work in compressed form on your system.  The
  4925.              only way to know for sure is to try it yourself.
  4926.  
  4927.           We are currently looking into alternatives for compressing the
  4928.           executable files.  There are several utilities available or under
  4929.           development which may do the trick.  Unfortunately, we are not
  4930.           allowed to talk about them due to nondisclosure agreements.
  4931.  
  4932.  
  4933.           Change History:
  4934.           ===============
  4935.  
  4936.           Please refer to the HISTORY.DOC text file for the complete change
  4937.           history of the Programmer's Productivity Pack Lite.
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.           Miscellaneous Information                                79 of 95
  4950.  
  4951.  
  4952.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  4953.  
  4954.  
  4955.                                      ------------
  4956.                                       Appendix A
  4957.                                      ------------
  4958.  
  4959.  
  4960.           The Bits and the Bytes:
  4961.           =======================
  4962.           This appendix provides basic information concerning bits and bit
  4963.           level operations.  The primary source for this brief overview was
  4964.           Charles Petzold's "PC Tutor" column in the August, 1987, issue of
  4965.           "PC Magazine" (Volume 6, Number 14).
  4966.  
  4967.           TIP:
  4968.              If you are new to hexadecimal and binary arithmetic, we
  4969.              recommend that you find a copy of Jeff Duntemann's excellent
  4970.              book "Assembly Language from Square One", published by Scott,
  4971.              Foresman and Company.  Chapter One of this book contains the
  4972.              clearest and most entertaining introduction to the binary and
  4973.              hexadecimal numbering systems that we have ever seen.TIP
  4974.  
  4975.           For the sake of simplicity, we'll discuss the details of bits
  4976.           from the standpoint of 16 bit systems.  16 bit systems include
  4977.           IBM PC's, XT's, AT's, and some PS/2's.  For this discussion, when
  4978.           we say "16 bit system" we are referring to the microprocessor
  4979.           itself, not necessarily all the hardware to which it is
  4980.           connected.  If you work with 32 bit systems like the newer 80386
  4981.           machines, they are just twice the size, in bits, of 16 bit
  4982.           systems.
  4983.  
  4984.           On the most basic level, your computer works with bits.  A bit is
  4985.           a concrete, real value in your computer.  A bit is simply a state
  4986.           - on/off, yes/no, true/false, or 1/0, depending upon how you like
  4987.           to think of them.
  4988.  
  4989.           Handling bits one at a time would be a very complicated and
  4990.           inefficient process for us humans, so we deal with bits in
  4991.           groups.  The most common group of bits is called a "byte," which
  4992.           is simply a group made up of 8 individual bits.
  4993.  
  4994.           Bits are usually represented using the numbers one (1) and zero
  4995.           (0).  In fact, these are the only numbers that a single bit can
  4996.           represent.  Numbers consisting solely of 1's and 0's are called
  4997.           binary numbers, because only two digits make up the entire number
  4998.           system.  We are more accustomed to the Decimal system in which 10
  4999.           digits (0-9) make up the entire number system.
  5000.  
  5001.           Performing mathematical operations on binary numbers is much like
  5002.           performing mathematical operations on decimal numbers, except
  5003.           only 2 digits (0 and 1) are used.
  5004.  
  5005.  
  5006.  
  5007.  
  5008.           Bits and Bytes; A Brief Tutorial                         80 of 95
  5009.  
  5010.  
  5011.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5012.  
  5013.  
  5014.           For example, in Decimal format, "1 + 1 = 2", but binary numbers
  5015.           don't have a digit like "2", so we carry the 1, just like we do
  5016.           with decimal numbers.  In decimal numbers when you add "9 + 1"
  5017.           there is no digit to represent a value higher than 9, so we carry
  5018.           one place as follows:
  5019.  
  5020.                Decimal:   9
  5021.                         + 1
  5022.                         ----
  5023.                          10
  5024.  
  5025.                Binary is the same:   1
  5026.                                    + 1
  5027.                                    ----
  5028.                                     10
  5029.  
  5030.           With decimal numbers, each time a digit is moved left one place,
  5031.           the number increases by a power of 10.  If you take the decimal
  5032.           value 10 and move it left one place you get the number 100 which
  5033.           is 10 times greater than the value with which you started.
  5034.  
  5035.           Binary numbers work like this too.  Each time you move a binary
  5036.           value left one place the value increases by a power of two.
  5037.  
  5038.           The following chart shows a byte size value (8 bits) and the
  5039.           result each time a digit is shifted left one place, this should
  5040.           give you a better picture of how binary numbers work:
  5041.  
  5042.              Binary      Decimal
  5043.               value      equivalent
  5044.                --------  ----------
  5045.              00000000      0
  5046.              00000001      1
  5047.              00000010      2
  5048.              00000100      4
  5049.              00001000      8
  5050.              00010000     16
  5051.              00100000     32
  5052.              01000000     64
  5053.              10000000    128
  5054.  
  5055.           ProLite's Calculator is an excellent tool to help see this first
  5056.           hand.  ProLite's Calculator enables you to shift values left and
  5057.           right, rotate them left and right, and perform a myriad of
  5058.           different operations, all the while showing you the individual
  5059.           bit settings.  Watching the bit settings in the binary values
  5060.           will show you exactly what is happening as you perform each
  5061.           operation.
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.           Bits and Bytes; A Brief Tutorial                         81 of 95
  5068.  
  5069.  
  5070.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5071.  
  5072.  
  5073.           The following chart shows the binary values corresponding to the
  5074.           decimal numbers from 1 to 10, this should give you a good idea of
  5075.           how binary numbers are used to add, subtract, and do other
  5076.           mathematical operations:
  5077.  
  5078.              Binary   Decimal
  5079.              value    equivalent
  5080.              ------   ----------
  5081.  
  5082.              0001        1
  5083.              0010        2
  5084.              0011        3
  5085.              0100        4
  5086.              0101        5
  5087.              0110        6
  5088.              0111        7
  5089.              1000        8
  5090.              1001        9
  5091.              1010       10
  5092.  
  5093.  
  5094.           As you can see:
  5095.  
  5096.                in Binary:               1
  5097.                                       + 1
  5098.                                       ---
  5099.                                        10
  5100.  
  5101.                then adding another 1:  10
  5102.                                       + 1
  5103.                                       ---
  5104.                                        11
  5105.  
  5106.                and another:            11
  5107.                                       + 1
  5108.                                       ---
  5109.                                       100
  5110.  
  5111.                and so forth.
  5112.  
  5113.           Why is all this binary stuff important?  What does it have to do
  5114.           with programming my computer?  Well, your computer's
  5115.           microprocessor manipulates groups of bits in its registers.  A
  5116.           register is simply a storage location built right into the chip
  5117.           itself.  This means the processor can manipulate values in these
  5118.           registers very quickly, because it doesn't have to get the value
  5119.           from memory somewhere else in the system.
  5120.  
  5121.           The types of microprocessors we are discussing generally
  5122.           manipulate 8 or 16 bits at a time in their registers.  The
  5123.           registers, by the way, are either 8 or 16 bits wide.
  5124.  
  5125.  
  5126.           Bits and Bytes; A Brief Tutorial                         82 of 95
  5127.  
  5128.  
  5129.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5130.  
  5131.  
  5132.           In virtually every field of business, science, and life in
  5133.           general, we make up names for things.  The computer field is no
  5134.           different.  When we group bits together into logical units, we
  5135.           have a name for each unit.  We've already discussed the "BYTE"
  5136.           which is a collection of 8 bits that are treated as a single unit
  5137.           or group.  A unit with 4 bits is half of a byte, so logically, it
  5138.           is called a "NIBBLE" (also spelled "nybble").  Moving in the
  5139.           other direction, a group of 16 bits (two bytes), is called a
  5140.           "WORD".  A group of 32 bits (four bytes) is called a "DOUBLE
  5141.           WORD".
  5142.  
  5143.           Knowing this, much of the mystique behind these terms should now
  5144.           be cleared up.  Learning a few new terms is not unique to the
  5145.           computer industry, if you were a stock broker you would have to
  5146.           learn the difference between a put and a call, if you were a
  5147.           sailor you would have to learn the difference between port and
  5148.           starboard.  The computer field is like any other field.  There
  5149.           are new terms to learn, but the result is it will be easier to
  5150.           say exactly what you mean and have others understand exactly what
  5151.           you are talking about.
  5152.  
  5153.           Let's take a look at the range of values that can be represented
  5154.           by various groups of bits.  Obviously, when you have a known
  5155.           amount of space in which to store a number, there is a limit to
  5156.           the size of the number that can be stored there.  Along these
  5157.           same lines, if you have enough space to store anything from 0 to
  5158.           10 but you want to add the ability to use negative numbers as
  5159.           well, then the same storage space will hold anything from -5 to
  5160.           +5.  After all, we can only store a limited number of unique
  5161.           values in a particular storage space.
  5162.  
  5163.           An 8 bit value, a byte, can represent any decimal number (whole
  5164.           number) between 0 and 255.  If you want to be able to include
  5165.           negative numbers, then we can represent any value from -127 to
  5166.           +128 with 8 bits.
  5167.  
  5168.           Numbers that can be either positive or negative are called
  5169.           "SIGNED" numbers.  Logically, numbers that can only be positive
  5170.           are called "UNSIGNED" numbers.
  5171.  
  5172.           A 16 bit value, a word, can represent any decimal whole number
  5173.           between 0 and 65,535.  If you are using signed numbers, a 16 bit
  5174.           word can represent any decimal whole number from -32,767 to
  5175.           +32,768.
  5176.  
  5177.           A 32 bit value, a double word, can represent any decimal whole
  5178.           number between 0 and 4,294,967,295.  A signed 32 bit double word
  5179.           can represent any whole number between -2,147,483,648 and
  5180.           +2,147,483,647.
  5181.  
  5182.  
  5183.  
  5184.  
  5185.           Bits and Bytes; A Brief Tutorial                         83 of 95
  5186.  
  5187.  
  5188.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5189.  
  5190.  
  5191.           This should help to explain why so many software products on the
  5192.           market have similar limits for various operations.  When working
  5193.           with a computer you have to stay within the limits of what it is
  5194.           able to accomplish using its particular design.  Of course we
  5195.           haven't even touched on the subject of numbers that can have
  5196.           something after the decimal point.  Fractional numbers, often
  5197.           called "floating point" numbers in the computer industry, are an
  5198.           entirely different subject and we won't go into detail on them
  5199.           here.  Suffice it to say, unless you are using a math coprocessor
  5200.           chip, floating point math must be performed with software as the
  5201.           processor itself does not understand fractional values.
  5202.  
  5203.           Let's take a brief look at the "logical" operations that your
  5204.           computer can perform.  This will also help you to understand the
  5205.           various operations available within ProLite's Programmer's
  5206.           Calculator.
  5207.  
  5208.           The first operation we'll look at is one of the most commonly
  5209.           used.  The "AND" operation.  Notice we said "AND" and not "ADD".
  5210.           "AND" and "ADD" are two entirely different operations.
  5211.  
  5212.  
  5213.           AND - When you AND two bits together they produce a 1 only if
  5214.           both of the original bits are a 1.
  5215.  
  5216.                       0      0      1      1
  5217.                   AND 0  AND 1  AND 0  AND 1
  5218.                   -----  -----  -----  -----
  5219.           equals      0      0      0      1
  5220.  
  5221.  
  5222.           This is usually shown by way of a "truth table" which shows how
  5223.           the operation works.  A truth table for the AND operator might
  5224.           look something like this:
  5225.  
  5226.  
  5227.                    AND|  0  |  1
  5228.                   ----+-----+-----
  5229.                     0 |  0  |  0
  5230.                   ----+-----+-----
  5231.                     1 |  0  |  1
  5232.  
  5233.  
  5234.           You read the table by picking one value from the top line and
  5235.           drawing an imaginary line straight down, pick the other value
  5236.           from the left side and draw an imaginary line horizontally to the
  5237.           right.  Where these two imaginary lines intersect is the result
  5238.           you get when you AND the values together.
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.           Bits and Bytes; A Brief Tutorial                         84 of 95
  5245.  
  5246.  
  5247.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5248.  
  5249.  
  5250.           Taking this concept further, to 8 or 16 bit numbers, merely
  5251.           involves lining up the numbers one above the other like so:
  5252.  
  5253.  
  5254.                                   00101011
  5255.                               AND 01001000
  5256.                                   --------
  5257.                                   00001000
  5258.  
  5259.  
  5260.           As you can see, only one of the bits in these two bytes have
  5261.           matching 1's, therefore only that bit produces a 1 for an answer.
  5262.  
  5263.  
  5264.           NOT - The NOT operator is a little bit different than the AND
  5265.           operator.  NOT works only on one value, rather than comparing two
  5266.           values with each other.  NOT converts all 0's to 1's and vice
  5267.           versa.  The NOT truth table looks like this:
  5268.  
  5269.                               NOT | 1 | 0
  5270.                              -----+---+---
  5271.                                   | 0 | 1
  5272.  
  5273.  
  5274.           The result is what is known as a "one's complement." In 8086/8088
  5275.           assembly language there is a similar instruction called NEG.  NEG
  5276.           goes one step further than NOT, after obtaining the one's
  5277.           complement of a number, the NEG instruction adds 1 to it, giving
  5278.           you the "two's complement" of the original value.  Using
  5279.           ProLite's "Change Sign" command produces the same results as the
  5280.           NEG instruction.
  5281.  
  5282.  
  5283.           OR - The OR operator, like the AND operator, compares two values
  5284.           and produces a result.  OR produces a 1 if either of the two
  5285.           inputs are a 1.  The truth table for an OR looks like this:
  5286.  
  5287.                               OR |  0  |  1
  5288.                             -----+-----+-----
  5289.                                0 |  0  |  1
  5290.                             -----+-----+-----
  5291.                                1 |  1  |  1
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.           Bits and Bytes; A Brief Tutorial                         85 of 95
  5304.  
  5305.  
  5306.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5307.  
  5308.  
  5309.           XOR - The XOR (eXclusive OR) operator produces a 1, if one and
  5310.           only one of the inputs is a 1, if both inputs are 1 it will
  5311.           produce a 0.  The XOR truth table follows:
  5312.  
  5313.                              XOR |  0  |  1
  5314.                            ------+-----+-----
  5315.                                0 |  0  |  1
  5316.                            ------+-----+-----
  5317.                                1 |  1  |  0
  5318.  
  5319.           This can sometimes be easier to understand and picture when you
  5320.           think of it like this: the XOR operator produces a 1 for a result
  5321.           whenever the two bits being compared are different from each
  5322.           other.  If the two bits are the same, the answer is 0, if the two
  5323.           bits are different, the answer is 1.
  5324.  
  5325.  
  5326.           SHL and SHR - The Shift Left and Shift Right operators do exactly
  5327.           what their names imply, they shift a value left or right.  For
  5328.           instance:
  5329.  
  5330.                                take the value: 00001111
  5331.                        shift it left 4 places: 11110000
  5332.                  then shift it right 2 places: 00111100
  5333.  
  5334.  
  5335.           One interesting aspect to these operators is that they can be
  5336.           used as very fast multiplication or division operators.  Shift
  5337.           Left 1 place is the same as multiplying by 2, Shift Left 2 is the
  5338.           same as multiplying by 4, shift left 3 is the same as multiplying
  5339.           by 8, and so forth.  Shifting right is the same except the effect
  5340.           is like dividing by 2, 4, 8, etc., rather than multiplying.
  5341.  
  5342.           There are two similar instructions called Shift Arithmetic Left
  5343.           (SAL) and Shift Arithmetic Right (SAR).  These are very similar
  5344.           to the shift instructions except the value of the sign bit is
  5345.           retained throughout the shift operation.  As with the other
  5346.           operators, the best way to see how this works is to fire up
  5347.           ProLite's Calculator and tinker with a few examples.  This way
  5348.           you'll be able to see first hand what these operators actually
  5349.           do.
  5350.  
  5351.           Now let's take a brief look at some of the rotate operations.
  5352.           The rotate operations are very similar to the shift instructions.
  5353.           Understanding the differences is really a matter of considering
  5354.           what happens when a bit is shifted off of one end of a number.
  5355.           When shifting, if you shift a bit right off the end, it is no
  5356.           longer a part of your value.  The rotate operations deal with
  5357.           this a little differently.
  5358.  
  5359.  
  5360.  
  5361.  
  5362.           Bits and Bytes; A Brief Tutorial                         86 of 95
  5363.  
  5364.  
  5365.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5366.  
  5367.  
  5368.           The rotate operations function just like their name implies.  The
  5369.           rotate operations shift values in the registers, but instead of
  5370.           losing the bit that comes off the end, it is rotated around and
  5371.           inserted into the other end of the register.  Something like
  5372.           this:
  5373.  
  5374.  
  5375.                      |---->--------------------------->----|
  5376.                      |                                     |
  5377.             |----|   |  |-------------------------------|  |
  5378.             | CY |<-----| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |<-|
  5379.             |----|      |-------------------------------|
  5380.  
  5381.                                      Rotate Left
  5382.  
  5383.  
  5384.           At the same time that the bit is rotated around to the other end,
  5385.           it is also placed in the carry flag (a particular bit position
  5386.           within the "flags" register).  Both the Rotate Left (ROL) and
  5387.           Rotate Right (ROR) instructions work by taking the bit that
  5388.           "falls off of the end" and rotating it around to be put right
  5389.           back into the other end of the register.
  5390.  
  5391.           Another instruction of this type is the Rotate through the Carry
  5392.           instruction (RCL and RCR).  It is very similar to the regular
  5393.           rotate instruction, except that the bit that comes off the end is
  5394.           passed through the carry flag.  In other words, the value that
  5395.           comes in one end of the register is the value that was previously
  5396.           in the carry flag.  Here's how it would look:
  5397.  
  5398.             |----------------------->-----------------------|
  5399.             |                                               |
  5400.             |  |----|   |-------------------------------|   |
  5401.             |<-| CY |<--| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |<--|
  5402.                |----|   |-------------------------------|
  5403.  
  5404.                       Rotate through the Carry Left
  5405.  
  5406.  
  5407.  
  5408.             |-----------------------<-----------------------|
  5409.             |                                               |
  5410.             |  |----|   |-------------------------------|   |
  5411.             |->| CY |-->| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |->-|
  5412.                |----|   |-------------------------------|
  5413.  
  5414.                       Rotate through the Carry Right
  5415.  
  5416.           How do you use such strange operations when you are programming?
  5417.           Well, as you start getting more involved with using MS-DOS or
  5418.           your ROM BIOS, you will more and more frequently find the need to
  5419.  
  5420.  
  5421.           Bits and Bytes; A Brief Tutorial                         87 of 95
  5422.  
  5423.  
  5424.           Appendix A      - Programmer's Productivity Pack Lite Lite 1.00 -
  5425.  
  5426.  
  5427.           compare bit patterns, to find out if a particular bit is set in a
  5428.           number, and even to shift the bits around in order to see what
  5429.           they really represent.
  5430.  
  5431.           As your programs become more intimate with the hardware of the
  5432.           computer, your need to understand and be able to use other
  5433.           numbering systems will grow as well.  This is especially true
  5434.           when you program in languages like "C" or "Turbo Pascal", where
  5435.           much can be done when you are able to work with binary,
  5436.           hexadecimal or octal numbers.  If you deal with assembly language
  5437.           then you know by experience what we're talking about.
  5438.  
  5439.           We certainly hope that this has answered your questions, and that
  5440.           ProLite's Programmer's Calculator will make your programming a
  5441.           little easier and much more productive.
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.  
  5480.           Bits and Bytes; A Brief Tutorial                         88 of 95
  5481.  
  5482.  
  5483.           Appendix B      - Programmer's Productivity Pack Lite Lite 1.00 -
  5484.  
  5485.  
  5486.                                      ------------
  5487.                                       Appendix B
  5488.                                      ------------
  5489.  
  5490.  
  5491.           Understanding Two's Complement Numbers:
  5492.           =======================================
  5493.  
  5494.           When manipulating signed values, your computer must be able to
  5495.           tell the difference between a positive and a negative number.  It
  5496.           does this through the use of a "sign bit." The leftmost bit is
  5497.           the sign bit.  When this leftmost bit is a zero (0) the number is
  5498.           positive, when that bit is a one (1) the number is negative.  Of
  5499.           course, when you are treating a number as an UNsigned value, the
  5500.           leftmost bit is just a part of the number, and all values will be
  5501.           considered positive.
  5502.  
  5503.           There's a little more to negative numbers than just a sign bit.
  5504.           To your computer, negative numbers are actually what is called
  5505.           the "two's complement" of positive numbers.  While this may sound
  5506.           complicated, it is actually very simple and reasonable.  Here is
  5507.           a brief explanation of what "two's complement" really means, and
  5508.           a simple example to illustrate how it actually works.
  5509.  
  5510.           Let's use an 8 bit value for the sake of simplicity, and the
  5511.           number 5.  In binary, the number 5 looks like this:
  5512.  
  5513.                                 00000101
  5514.  
  5515.           Now, to obtain the two's complement of that number, we must do
  5516.           two things.  First we must complement each bit, simply change
  5517.           each 1 to a 0, and each 0 to a 1.  In essence we are just
  5518.           reversing each digit.  This is called the one's complement.  Here
  5519.           is what our results will look like:
  5520.  
  5521.                         Before changing: 00000101
  5522.                          After changing: 11111010
  5523.  
  5524.           A quick way to do this using ProLite's Calculator is to use the
  5525.           "NOT" operator.  It will instantly show you the one's complement
  5526.           of the current value.
  5527.  
  5528.           The next (and final) step we must perform is just as easy.
  5529.           Simply add 1 to the number, like this:
  5530.  
  5531.  
  5532.                                   11111010
  5533.                                  +       1
  5534.                                  _________
  5535.  
  5536.                                   11111011
  5537.  
  5538.  
  5539.           Two's Complement Numbers                                 89 of 95
  5540.  
  5541.  
  5542.           Appendix B      - Programmer's Productivity Pack Lite Lite 1.00 -
  5543.  
  5544.  
  5545.           That is the binary representation of -5.  We have just converted
  5546.           a positive 5 to a negative 5 in two simple steps.  As you might
  5547.           imagine, those two steps are exactly the kind of thing your
  5548.           computer is good at, and can do very quickly.  By using this
  5549.           technique, the computer is able to subtract one number from
  5550.           another simply by adding the two's complement of the value to the
  5551.           first value.  In this way the processor is able to perform two
  5552.           different kinds of math using basically the same internal
  5553.           circuitry.
  5554.  
  5555.           Just to show that this really does work, let's change the
  5556.           negative 5 back into a positive 5, using the same steps.  Here
  5557.           goes:
  5558.  
  5559.                      Before changing (-5): 11111011
  5560.  
  5561.                            After changing: 00000100
  5562.  
  5563.                                Now, add 1: 00000100
  5564.                                           +       1
  5565.                                           ---------
  5566.                                            00000101
  5567.  
  5568.           There you have it!  We've converted 5 to -5 and back to 5, using
  5569.           the same technique employed by your computer.  With this
  5570.           information under your belt, it will be much easier to understand
  5571.           overflow flags and the like when you are working on the assembly
  5572.           language level.
  5573.  
  5574.           In 8086/8088 assembly language, the "NEG" instruction performs
  5575.           the two's complement for you.  The Programmer's Calculator
  5576.           produces the same result with the "Change Sign" command.
  5577.  
  5578.  
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.           Two's Complement Numbers                                 90 of 95
  5599.  
  5600.  
  5601.           Appendix C      - Programmer's Productivity Pack Lite Lite 1.00 -
  5602.  
  5603.  
  5604.                                      ------------
  5605.                                       Appendix C
  5606.                                      ------------
  5607.  
  5608.  
  5609.           What is Falk Data Systems?
  5610.           ==========================
  5611.  
  5612.           Falk Data Systems is a small software company owned and operated
  5613.           by Bob Falk.
  5614.  
  5615.           At Falk Data Systems we believe that the PRIMARY purpose of
  5616.           business is service, not profit.  This concept is fundamental to
  5617.           our approach to product development, production and marketing.
  5618.  
  5619.           Falk Data Systems has been producing top quality computer
  5620.           software at reasonable prices, continuously, since 1987.
  5621.  
  5622.           Please feel free to contact me (Bob Falk) at any time if you have
  5623.           any questions, comments or suggestions.  I can be reached by mail
  5624.           at the following address:
  5625.  
  5626.              Bob Falk
  5627.              Falk Data Systems
  5628.              5322 Rockwood Court
  5629.              El Paso, Texas  79932-2412
  5630.              U.S.A.
  5631.  
  5632.           I can also be reached by voice or electronically as follows:
  5633.  
  5634.              Phone:        (915) 584-7670
  5635.              FAX:          (915) 584-1540
  5636.              Orders Only:  (800) 326-5615
  5637.  
  5638.              CompuServe:   71420,2431
  5639.  
  5640.              Internet:     71420.2431@COMPUSERVE.COM
  5641.  
  5642.  
  5643.           Other Products From Falk Data Systems:
  5644.           ======================================
  5645.  
  5646.           Please refer to the PRODUCTS.DOC text file for a complete list of
  5647.           other products available from Falk Data Systems.
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.           Other Products From Falk Data Systems                    91 of 95
  5658.  
  5659.  
  5660.                                    ---  INDEX  ---
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.                                         Index
  5669.  
  5670.  
  5671.           A                                  Circular queue See: Linked
  5672.           Add 42                               list
  5673.           Advanced options menu 74           Clear All (^A) 39, 41, 42
  5674.           Alt-Q 65                           Clear Entry (^E) 39, 43
  5675.           AND 43, 84                         Click sound 74
  5676.           ANSWERS.DOC 9                      Clipper 55, 57
  5677.           ASCII and Color Attribute          Color attribute set 66
  5678.             Chart 46                         Colors menu 65
  5679.             Reference Guide 49-51            Command line
  5680.             Tutorial 47-48                     DOS 16
  5681.           ASP 2                              Command line parameters 21,
  5682.             Ombudsman 2                        62, 64
  5683.           Assembly language 29, 36, 45,        -U 21
  5684.             90                                 ProLite 16
  5685.           Attachments 45, 49, 51, 59              -? 20
  5686.           AUTOEXEC.BAT 24                         -D 17
  5687.                                                   -E 17
  5688.           B                                       -H 18
  5689.           Background task 9, 20, 55               -M 18
  5690.           Batch files 24                          -N 18
  5691.           BCD See: Binary Coded Decimal           -P 19
  5692.           Beep Sound 73                           -S 19
  5693.           Benefits 2                              -T 18
  5694.           Binary Coded Decimal 45                 -U 19
  5695.           Binary format 28, 30, 34, 36,           -X 19
  5696.             37, 38                           Communications programs 15
  5697.           Binary numbers 69, 80, 81, 89      CompuServe 2
  5698.           Bit level operations 43            Conflicts with other TSR's 23
  5699.           Bit manipulation facility 31,      Ctrl-@ 38
  5700.             39                               Current value 39, 41, 43
  5701.           Bits 31, 39, 43, 80                Custom attribute set 66
  5702.           Blank screen 40, 47, 60, 77        Custom colors menu 67
  5703.           Bytes 80, 83, 89                   Customizing program See:
  5704.                                                PCustom
  5705.           C
  5706.           Calculator and Attachments 27,     D
  5707.             73                               dBASE 52, 55
  5708.           Calculator menu 36, 69             DEBUG 16
  5709.           Cancel Changes 63, 65, 78          Decimal format 28, 30, 31, 34,
  5710.           Carry flag 44, 87                    37, 81
  5711.           Change Bits (^C) 31, 39            Decimal point 42, 84
  5712.           Change Hot Key 33, 38, 73          Delete Digit 43
  5713.           Change Sign (^-) 39, 85, 90        DESQview 9, 16, 20
  5714.  
  5715.  
  5716.           Falk Data Systems                                        92 of 95
  5717.  
  5718.  
  5719.                                    ---  INDEX  ---
  5720.  
  5721.  
  5722.           Disable disk parking 40              Floppy disk 10
  5723.           Divide 42                            Hard disk 10
  5724.           DOS ERRORLEVEL 24                  Integer division 42
  5725.           DOS Shell 14, 15                   Intermediate value 39, 41, 43
  5726.           DOS version 3.0 14                 ISR 15
  5727.           Double word 83
  5728.           Dual monitor systems 6, 11         K
  5729.                                              Keyboard 12
  5730.           E                                  Keyboard interrupt 13, 42
  5731.           EDLIN 16                           KeyRef 46, 52
  5732.           EMS memory 6, 14, 24               Keystroke Reference Center 46,
  5733.           Enhanced keyboard 13, 42, 55,        70
  5734.             58                                 Reference Guide 55-59
  5735.           Error messages 25, 70                Tutorial 52-54
  5736.           Error sound 63, 74
  5737.           ERRORLEVEL 24                      L
  5738.           Exchange Double Words See:         License 1
  5739.             XCHG DD                          Linked list See: Recursion
  5740.           Exchange Words See: XCHG DW        Logical operations 43, 84
  5741.           Exclusive OR See: XOR
  5742.           Exit PCustom 65, 78                M
  5743.           Exit the ASCII Chart 48, 51        Marketing 91
  5744.           Exit the Calculator 40, 41         Mathematical operations 41
  5745.           Exit The Keystroke Reference       Memory
  5746.             Center 53, 59                      EMS 6, 14
  5747.           Extended characters 50               high 15
  5748.                                                XMS 6, 7, 14
  5749.           F                                  Memory requirements 7
  5750.           Final result 41, 43                Memory-resident version 7, 40,
  5751.           FoxBase 55                           55
  5752.           Fractions 84                       Memory slots 40, 41
  5753.                                              Miscellaneous 76
  5754.           G                                  Missing overlay file 25
  5755.           Graphics mode 15, 25               Modes See: Video modes
  5756.           Gray scale attribute set 66        Modifier keys 12, 38
  5757.                                              Modulus 42, 43
  5758.           H                                  Monitors
  5759.           Hard Disk 14                         Black-and-white 11, 62, 64,
  5760.           Hardware Interrupt Handlers 15       67
  5761.           Hexadecimal format 12, 28, 31,       Color 11, 49, 66
  5762.             34, 37, 39                         Gas plasma 11, 62, 64
  5763.           High memory 15                       Gray scale 11, 62, 64, 66,
  5764.           Hot key                              67
  5765.             Tips 38                            LCD 11, 62, 64
  5766.           Hot Keys menu 72                     Monochrome 11, 66, 67
  5767.                                              Moving the display 45, 58
  5768.           I                                  Multiply 42
  5769.           INKEY() 52, 55, 57                 Multitasking system 15, 20, 55
  5770.           Insert a Value (^I) 40             Multitasking version 7, 9, 20,
  5771.           Installation 9                       41
  5772.  
  5773.  
  5774.  
  5775.           Falk Data Systems                                        93 of 95
  5776.  
  5777.  
  5778.                                    ---  INDEX  ---
  5779.  
  5780.  
  5781.           N                                    Reference Guide 34-46
  5782.           Name                                 Tutorial 27-33
  5783.             changing 21                      ProLite 14
  5784.           NEG 85, 90
  5785.           Negative to positive 39            Q
  5786.           Network shells 15                  QEMM 15
  5787.           Nibble 83                          QRAM 15
  5788.           Non-Registered Users 3             QuickSilver 55
  5789.           Normal messages 71                 Quit PCustom 65, 78
  5790.           NOT 43, 85, 89                     Quit the ASCII Chart 48, 51
  5791.           Numeric Format 37, 75              Quit the Calculator 40, 41
  5792.             Switching 31, 37                 Quit The Keystroke Reference
  5793.           Numeric Mode 39, 75                  Center 53, 59
  5794.           NumLock 13, 28, 42, 50, 53
  5795.                                              R
  5796.           O                                  RAM 7
  5797.           Octal format 28, 34, 37            RAM Disk 14
  5798.           Ombudsman 2                        Range of values 34
  5799.           OmniView 6, 9, 20                  RCL 44, 87
  5800.           One's complement 89                RCR 44, 87
  5801.           OR 43, 85                          Read/Write heads 40
  5802.           Overlay file 25, 26                Recursion See: Circular queue
  5803.                                              Registered Users 1, 3
  5804.           P                                  Registration 1, 3
  5805.           Park Disk(s) and Blank Screen      Remainder 43
  5806.             40, 47, 51, 60, 60-61            Rename 21
  5807.           PCustom 62                         Returning to the Calculator
  5808.             Cancel Changes 78                  46, 51, 59
  5809.             Reference Guide 64-78            ROL 44, 87
  5810.             Save changes 78                  ROR 44, 87
  5811.             Tutorial 62-63                   Rotate Left See: ROL
  5812.           PCustom.EXE 9                      Rotate Right See: ROR
  5813.           PCustom menus                      Rotate through the Carry Left
  5814.             Advanced options menu 74           See: RCL
  5815.             Colors menu 65                   Rotate through the Carry Right
  5816.             Custom colors menu 67              See: RCR
  5817.             Exit PCustom menu 78
  5818.             Hot Keys menu 72                 S
  5819.             Main menu 65                     SAL 45, 86
  5820.             Sound effects menu 73            SAR 45, 86
  5821.           Pick list 40                       Save a Value (^S) 40
  5822.           Pop-Up DOS Shell See: DOS          Scan code 52, 55, 57
  5823.             Shell                            Screen Blank
  5824.             Customizing 73                     Clock 72
  5825.           PopCalc 24                         Screen Refresh (^R) 41
  5826.           Portability Note 52, 53, 58        ScrollLock 53
  5827.           Positive to negative 39            Shareware 1, 2
  5828.           PRINT 23                           Shift Arithmetic Left See: SAL
  5829.           ProComm 15                         Shift Arithmetic Right See:
  5830.           Programmer's Calculator              SAR
  5831.             Customizing 68, 74               Shift keys 12
  5832.  
  5833.  
  5834.           Falk Data Systems                                        94 of 95
  5835.  
  5836.  
  5837.                                    ---  INDEX  ---
  5838.  
  5839.  
  5840.           Shift Left See: SHL                Two seconds 26
  5841.           Shift Right See: SHR
  5842.           SHL 44, 86                         U
  5843.           Show Result 43                     Unblank screen 40
  5844.           SHR 44, 86                         Unload from memory 41
  5845.           Sidekick version 21                Unloading ProLite 21
  5846.           Sign bit 89                        Unpark disk 40
  5847.           Signed mode 31, 34, 36, 39, 41     Unsafe to pop up 26
  5848.           Signed numbers 83, 89              Unsafe to unload 33
  5849.           Sound effects menu 73              Unsigned mode 31, 35, 36, 39,
  5850.           Stand-alone version 14, 20           41
  5851.           Starting PCustom 64                Unsigned numbers 83, 89
  5852.           Status bytes 53                    Updates 3
  5853.           Subtract 42
  5854.           Swapping 14                        V
  5855.           Swapping Message 72                Video
  5856.           System requirements 6                Adapters 6
  5857.                                              Video modes
  5858.           T                                    Display height 12
  5859.           TAPCIS 15                            Display width 12
  5860.           TaskView 6, 9, 20                    Graphics 12, 15
  5861.           Technical Support 1                  Text 12
  5862.           Text mode 25                       Virtual screen 20
  5863.           386MAX 15
  5864.           TIP 38, 80                         W
  5865.           Toggle                             Warranty 1
  5866.             Bits 39                          Word 83
  5867.             Modes 36, 41
  5868.           Toggle Sign Mode (^T) 41           X
  5869.           Truth tables 84-86                 XCHG DD 45
  5870.           Try-before-you-buy 1               XCHG DW 45
  5871.           Two line cursor 77                 XMS memory 6, 7, 14
  5872.           Two's complement 89, 90            XOR 44, 86
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.           Falk Data Systems                                        95 of 95
  5894.  
  5895.